UNPKG

@dashkite/joy

Version:

[![Hippocratic License HL3-CORE](https://img.shields.io/static/v1?label=Hippocratic%20License&message=HL3-CORE&labelColor=5e2751&color=bc8c3d)](https://firstdonoharm.dev/version/3/0/core.html)

114 lines (113 loc) 16.3 kB
var getter, getters, metaclass, method, methods, mixin, properties, property, setter, setters; import { curry } from "./function"; import { merge } from "./object"; property = curry(function(key, description, target) { return Object.defineProperty(target, key, merge({ enumerable: true, configurable: true }, description)); }); getter = curry(function(key, f, target) { return property(key, { get: f }, target); }); setter = curry(function(key, f, target) { return property(key, { set: f }, target); }); method = curry(function(key, f, target) { return property(key, { value: f, configurable: true, writeable: true }, target); }); properties = curry(function(dictionary, target) { var description, key, results; results = []; for(key in dictionary){ description = dictionary[key]; results.push(property(key, description, target)); } return results; }); getters = curry(function(dictionary, target) { var f, key, results; results = []; for(key in dictionary){ f = dictionary[key]; results.push(getter(key, f, target)); } return results; }); setters = curry(function(dictionary, target) { var f, key, results; results = []; for(key in dictionary){ f = dictionary[key]; results.push(setter(key, f, target)); } return results; }); methods = curry(function(dictionary, target) { var f, key, results; results = []; for(key in dictionary){ f = dictionary[key]; results.push(method(key, f, target)); } return results; }); mixin = curry(function(target, fx) { var f, i, len; for(i = 0, len = fx.length; i < len; i++){ f = fx[i]; f(target); } return target; }); metaclass = function(base = Object) { return class extends base { static getter(key, f) { return getter(key, f, this.prototype); } static setter(key, f) { return setter(key, f, this.prototype); } static property(key, specifier) { return property(key, specifier, this.prototype); } static getters(dictionary) { return getters(dictionary, this.prototype); } static setters(dictionary) { return setters(dictionary, this.prototype); } static properties(dictionary) { return properties(dictionary, this.prototype); } static $getter(key, f) { return getter(key, f, this); } static $setter(key, f) { return setter(key, f, this); } static $property(key, specifier) { return property(key, specifier, this); } static $getters(dictionary) { return getters(dictionary, this); } static $setters(dictionary) { return setters(dictionary, this); } static $properties(dictionary) { return properties(dictionary, this); } }; }; export { property, getter, setter, method, properties, getters, setters, methods, mixin, metaclass }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL21ldGFjbGFzcy5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxVQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsRUFBQTs7QUFBQSxPQUFBO0VBQVEsS0FBUjtDQUFBLE1BQUE7O0FBQ0EsT0FBQTtFQUFRLEtBQVI7Q0FBQSxNQUFBOztBQUVBLFFBQUEsR0FBVyxLQUFBLENBQU0sUUFBQSxDQUFDLEdBQUQsRUFBTSxXQUFOLEVBQW1CLE1BQW5CLENBQUE7U0FDZixNQUFNLENBQUMsY0FBUCxDQUFzQixNQUF0QixFQUE4QixHQUE5QixFQUNFLEtBQUEsQ0FBTTtJQUFFLFVBQUEsRUFBWSxJQUFkO0lBQW9CLFlBQUEsRUFBYztFQUFsQyxDQUFOLEVBQWdELFdBQWhELENBREY7QUFEZSxDQUFOOztBQUlYLE1BQUEsR0FBUyxLQUFBLENBQU0sUUFBQSxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsTUFBVCxDQUFBO1NBQW9CLFFBQUEsQ0FBUyxHQUFULEVBQWM7SUFBQyxHQUFBLEVBQUs7RUFBTixDQUFkLEVBQXdCLE1BQXhCO0FBQXBCLENBQU47O0FBQ1QsTUFBQSxHQUFTLEtBQUEsQ0FBTSxRQUFBLENBQUMsR0FBRCxFQUFNLENBQU4sRUFBUyxNQUFULENBQUE7U0FBb0IsUUFBQSxDQUFTLEdBQVQsRUFBYztJQUFDLEdBQUEsRUFBSztFQUFOLENBQWQsRUFBd0IsTUFBeEI7QUFBcEIsQ0FBTjs7QUFDVCxNQUFBLEdBQVMsS0FBQSxDQUFNLFFBQUEsQ0FBQyxHQUFELEVBQU0sQ0FBTixFQUFTLE1BQVQsQ0FBQTtTQUNiLFFBQUEsQ0FBUyxHQUFULEVBQWM7SUFBQyxLQUFBLEVBQU8sQ0FBUjtJQUFXLFlBQUEsRUFBYyxJQUF6QjtJQUErQixTQUFBLEVBQVc7RUFBMUMsQ0FBZCxFQUErRCxNQUEvRDtBQURhLENBQU47O0FBR1QsVUFBQSxHQUFhLEtBQUEsQ0FBTSxRQUFBLENBQUMsVUFBRCxFQUFhLE1BQWIsQ0FBQTtBQUNuQixNQUFBLFdBQUEsRUFBQSxHQUFBLEVBQUE7QUFBRTtFQUFBLEtBQUEsaUJBQUE7O2lCQUNFLFFBQUEsQ0FBUyxHQUFULEVBQWMsV0FBZCxFQUEyQixNQUEzQjtFQURGLENBQUE7O0FBRGlCLENBQU47O0FBSWIsT0FBQSxHQUFVLEtBQUEsQ0FBTSxRQUFBLENBQUMsVUFBRCxFQUFhLE1BQWIsQ0FBQTtBQUNoQixNQUFBLENBQUEsRUFBQSxHQUFBLEVBQUE7QUFBRTtFQUFBLEtBQUEsaUJBQUE7O2lCQUNFLE1BQUEsQ0FBTyxHQUFQLEVBQVksQ0FBWixFQUFlLE1BQWY7RUFERixDQUFBOztBQURjLENBQU47O0FBSVYsT0FBQSxHQUFVLEtBQUEsQ0FBTSxRQUFBLENBQUMsVUFBRCxFQUFhLE1BQWIsQ0FBQTtBQUNoQixNQUFBLENBQUEsRUFBQSxHQUFBLEVBQUE7QUFBRTtFQUFBLEtBQUEsaUJBQUE7O2lCQUNFLE1BQUEsQ0FBTyxHQUFQLEVBQVksQ0FBWixFQUFlLE1BQWY7RUFERixDQUFBOztBQURjLENBQU47O0FBSVYsT0FBQSxHQUFVLEtBQUEsQ0FBTSxRQUFBLENBQUMsVUFBRCxFQUFhLE1BQWIsQ0FBQTtBQUNoQixNQUFBLENBQUEsRUFBQSxHQUFBLEVBQUE7QUFBRTtFQUFBLEtBQUEsaUJBQUE7O2lCQUNFLE1BQUEsQ0FBTyxHQUFQLEVBQVksQ0FBWixFQUFlLE1BQWY7RUFERixDQUFBOztBQURjLENBQU47O0FBSVYsS0FBQSxHQUFRLEtBQUEsQ0FBTSxRQUFBLENBQUMsTUFBRCxFQUFTLEVBQVQsQ0FBQTtBQUFlLE1BQUEsQ0FBQSxFQUFBLENBQUEsRUFBQTtFQUFDLEtBQUEsb0NBQUE7O0lBQUEsQ0FBQSxDQUFFLE1BQUY7RUFBQTtTQUF1QjtBQUF2QyxDQUFOOztBQUVSLFNBQUEsR0FBWSxRQUFBLENBQUUsT0FBTyxNQUFULENBQUE7U0FFVixNQUFBLFFBQWMsS0FBZDtJQUVXLE9BQVIsTUFBUSxDQUFFLEdBQUYsRUFBTyxDQUFQLENBQUE7YUFBYyxNQUFBLENBQU8sR0FBUCxFQUFZLENBQVosRUFBZSxJQUFDLENBQUEsU0FBaEI7SUFBZDs7SUFDQSxPQUFSLE1BQVEsQ0FBRSxHQUFGLEVBQU8sQ0FBUCxDQUFBO2FBQWMsTUFBQSxDQUFPLEdBQVAsRUFBWSxDQUFaLEVBQWUsSUFBQyxDQUFBLFNBQWhCO0lBQWQ7O0lBQ0UsT0FBVixRQUFVLENBQUUsR0FBRixFQUFPLFNBQVAsQ0FBQTthQUFzQixRQUFBLENBQVMsR0FBVCxFQUFjLFNBQWQsRUFBeUIsSUFBQyxDQUFBLFNBQTFCO0lBQXRCOztJQUNELE9BQVQsT0FBUyxDQUFFLFVBQUYsQ0FBQTthQUFrQixPQUFBLENBQVEsVUFBUixFQUFvQixJQUFDLENBQUEsU0FBckI7SUFBbEI7O0lBQ0EsT0FBVCxPQUFTLENBQUUsVUFBRixDQUFBO2FBQWtCLE9BQUEsQ0FBUSxVQUFSLEVBQW9CLElBQUMsQ0FBQSxTQUFyQjtJQUFsQjs7SUFDRyxPQUFaLFVBQVksQ0FBRSxVQUFGLENBQUE7YUFBa0IsVUFBQSxDQUFXLFVBQVgsRUFBdUIsSUFBQyxDQUFBLFNBQXhCO0lBQWxCOztJQUVILE9BQVQsT0FBUyxDQUFFLEdBQUYsRUFBTyxDQUFQLENBQUE7YUFBYyxNQUFBLENBQU8sR0FBUCxFQUFZLENBQVosRUFBZSxJQUFmO0lBQWQ7O0lBQ0EsT0FBVCxPQUFTLENBQUUsR0FBRixFQUFPLENBQVAsQ0FBQTthQUFjLE1BQUEsQ0FBTyxHQUFQLEVBQVksQ0FBWixFQUFlLElBQWY7SUFBZDs7SUFDRSxPQUFYLFNBQVcsQ0FBRSxHQUFGLEVBQU8sU0FBUCxDQUFBO2FBQXNCLFFBQUEsQ0FBUyxHQUFULEVBQWMsU0FBZCxFQUF5QixJQUF6QjtJQUF0Qjs7SUFDRCxPQUFWLFFBQVUsQ0FBRSxVQUFGLENBQUE7YUFBa0IsT0FBQSxDQUFRLFVBQVIsRUFBb0IsSUFBcEI7SUFBbEI7O0lBQ0EsT0FBVixRQUFVLENBQUUsVUFBRixDQUFBO2FBQWtCLE9BQUEsQ0FBUSxVQUFSLEVBQW9CLElBQXBCO0lBQWxCOztJQUNHLE9BQWIsV0FBYSxDQUFFLFVBQUYsQ0FBQTthQUFrQixVQUFBLENBQVcsVUFBWCxFQUF1QixJQUF2QjtJQUFsQjs7RUFkaEI7QUFGVTs7QUFrQlosT0FBQTtFQUNFLFFBREY7RUFFRSxNQUZGO0VBR0UsTUFIRjtFQUlFLE1BSkY7RUFLRSxVQUxGO0VBTUUsT0FORjtFQU9FLE9BUEY7RUFRRSxPQVJGO0VBU0UsS0FURjtFQVVFLFNBVkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5fSBmcm9tIFwiLi9mdW5jdGlvblwiXG5pbXBvcnQge21lcmdlfSBmcm9tIFwiLi9vYmplY3RcIlxuXG5wcm9wZXJ0eSA9IGN1cnJ5IChrZXksIGRlc2NyaXB0aW9uLCB0YXJnZXQpIC0+XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSB0YXJnZXQsIGtleSxcbiAgICBtZXJnZSB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9LCBkZXNjcmlwdGlvblxuXG5nZXR0ZXIgPSBjdXJyeSAoa2V5LCBmLCB0YXJnZXQpIC0+IHByb3BlcnR5IGtleSwge2dldDogZn0sIHRhcmdldFxuc2V0dGVyID0gY3VycnkgKGtleSwgZiwgdGFyZ2V0KSAtPiBwcm9wZXJ0eSBrZXksIHtzZXQ6IGZ9LCB0YXJnZXRcbm1ldGhvZCA9IGN1cnJ5IChrZXksIGYsIHRhcmdldCkgLT5cbiAgcHJvcGVydHkga2V5LCB7dmFsdWU6IGYsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGVhYmxlOiB0cnVlfSwgdGFyZ2V0XG5cbnByb3BlcnRpZXMgPSBjdXJyeSAoZGljdGlvbmFyeSwgdGFyZ2V0KSAtPlxuICBmb3Iga2V5LCBkZXNjcmlwdGlvbiBvZiBkaWN0aW9uYXJ5XG4gICAgcHJvcGVydHkga2V5LCBkZXNjcmlwdGlvbiwgdGFyZ2V0XG5cbmdldHRlcnMgPSBjdXJyeSAoZGljdGlvbmFyeSwgdGFyZ2V0KSAtPlxuICBmb3Iga2V5LCBmIG9mIGRpY3Rpb25hcnlcbiAgICBnZXR0ZXIga2V5LCBmLCB0YXJnZXRcblxuc2V0dGVycyA9IGN1cnJ5IChkaWN0aW9uYXJ5LCB0YXJnZXQpIC0+XG4gIGZvciBrZXksIGYgb2YgZGljdGlvbmFyeVxuICAgIHNldHRlciBrZXksIGYsIHRhcmdldFxuXG5tZXRob2RzID0gY3VycnkgKGRpY3Rpb25hcnksIHRhcmdldCkgLT5cbiAgZm9yIGtleSwgZiBvZiBkaWN0aW9uYXJ5XG4gICAgbWV0aG9kIGtleSwgZiwgdGFyZ2V0XG5cbm1peGluID0gY3VycnkgKHRhcmdldCwgZngpIC0+IGYgdGFyZ2V0IGZvciBmIGluIGZ4IDsgdGFyZ2V0XG5cbm1ldGFjbGFzcyA9ICggYmFzZSA9IE9iamVjdCApIC0+XG5cbiAgY2xhc3MgZXh0ZW5kcyBiYXNlXG5cbiAgICBAZ2V0dGVyOiAoIGtleSwgZiApIC0+IGdldHRlciBrZXksIGYsIEA6OlxuICAgIEBzZXR0ZXI6ICgga2V5LCBmICkgLT4gc2V0dGVyIGtleSwgZiwgQDo6XG4gICAgQHByb3BlcnR5OiAoIGtleSwgc3BlY2lmaWVyICkgLT4gcHJvcGVydHkga2V5LCBzcGVjaWZpZXIsIEA6OlxuICAgIEBnZXR0ZXJzOiAoIGRpY3Rpb25hcnkgKSAtPiBnZXR0ZXJzIGRpY3Rpb25hcnksIEA6OlxuICAgIEBzZXR0ZXJzOiAoIGRpY3Rpb25hcnkgKSAtPiBzZXR0ZXJzIGRpY3Rpb25hcnksIEA6OlxuICAgIEBwcm9wZXJ0aWVzOiAoIGRpY3Rpb25hcnkgKSAtPiBwcm9wZXJ0aWVzIGRpY3Rpb25hcnksIEA6OlxuXG4gICAgQCRnZXR0ZXI6ICgga2V5LCBmICkgLT4gZ2V0dGVyIGtleSwgZiwgQFxuICAgIEAkc2V0dGVyOiAoIGtleSwgZiApIC0+IHNldHRlciBrZXksIGYsIEBcbiAgICBAJHByb3BlcnR5OiAoIGtleSwgc3BlY2lmaWVyICkgLT4gcHJvcGVydHkga2V5LCBzcGVjaWZpZXIsIEBcbiAgICBAJGdldHRlcnM6ICggZGljdGlvbmFyeSApIC0+IGdldHRlcnMgZGljdGlvbmFyeSwgQFxuICAgIEAkc2V0dGVyczogKCBkaWN0aW9uYXJ5ICkgLT4gc2V0dGVycyBkaWN0aW9uYXJ5LCBAXG4gICAgQCRwcm9wZXJ0aWVzOiAoIGRpY3Rpb25hcnkgKSAtPiBwcm9wZXJ0aWVzIGRpY3Rpb25hcnksIEBcblxuZXhwb3J0IHtcbiAgcHJvcGVydHlcbiAgZ2V0dGVyXG4gIHNldHRlclxuICBtZXRob2RcbiAgcHJvcGVydGllc1xuICBnZXR0ZXJzXG4gIHNldHRlcnNcbiAgbWV0aG9kc1xuICBtaXhpblxuICBtZXRhY2xhc3Ncbn1cbiJdfQ== //# sourceURL=/@dashkite/joy/src/metaclass.coffee //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvbWV0YWNsYXNzLmNvZmZlZSJdLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjdXJyeX0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHttZXJnZX0gZnJvbSBcIi4vb2JqZWN0XCJcblxucHJvcGVydHkgPSBjdXJyeSAoa2V5LCBkZXNjcmlwdGlvbiwgdGFyZ2V0KSAtPlxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkgdGFyZ2V0LCBrZXksXG4gICAgbWVyZ2UgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSwgZGVzY3JpcHRpb25cblxuZ2V0dGVyID0gY3VycnkgKGtleSwgZiwgdGFyZ2V0KSAtPiBwcm9wZXJ0eSBrZXksIHtnZXQ6IGZ9LCB0YXJnZXRcbnNldHRlciA9IGN1cnJ5IChrZXksIGYsIHRhcmdldCkgLT4gcHJvcGVydHkga2V5LCB7c2V0OiBmfSwgdGFyZ2V0XG5tZXRob2QgPSBjdXJyeSAoa2V5LCBmLCB0YXJnZXQpIC0+XG4gIHByb3BlcnR5IGtleSwge3ZhbHVlOiBmLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRlYWJsZTogdHJ1ZX0sIHRhcmdldFxuXG5wcm9wZXJ0aWVzID0gY3VycnkgKGRpY3Rpb25hcnksIHRhcmdldCkgLT5cbiAgZm9yIGtleSwgZGVzY3JpcHRpb24gb2YgZGljdGlvbmFyeVxuICAgIHByb3BlcnR5IGtleSwgZGVzY3JpcHRpb24sIHRhcmdldFxuXG5nZXR0ZXJzID0gY3VycnkgKGRpY3Rpb25hcnksIHRhcmdldCkgLT5cbiAgZm9yIGtleSwgZiBvZiBkaWN0aW9uYXJ5XG4gICAgZ2V0dGVyIGtleSwgZiwgdGFyZ2V0XG5cbnNldHRlcnMgPSBjdXJyeSAoZGljdGlvbmFyeSwgdGFyZ2V0KSAtPlxuICBmb3Iga2V5LCBmIG9mIGRpY3Rpb25hcnlcbiAgICBzZXR0ZXIga2V5LCBmLCB0YXJnZXRcblxubWV0aG9kcyA9IGN1cnJ5IChkaWN0aW9uYXJ5LCB0YXJnZXQpIC0+XG4gIGZvciBrZXksIGYgb2YgZGljdGlvbmFyeVxuICAgIG1ldGhvZCBrZXksIGYsIHRhcmdldFxuXG5taXhpbiA9IGN1cnJ5ICh0YXJnZXQsIGZ4KSAtPiBmIHRhcmdldCBmb3IgZiBpbiBmeCA7IHRhcmdldFxuXG5tZXRhY2xhc3MgPSAoIGJhc2UgPSBPYmplY3QgKSAtPlxuXG4gIGNsYXNzIGV4dGVuZHMgYmFzZVxuXG4gICAgQGdldHRlcjogKCBrZXksIGYgKSAtPiBnZXR0ZXIga2V5LCBmLCBAOjpcbiAgICBAc2V0dGVyOiAoIGtleSwgZiApIC0+IHNldHRlciBrZXksIGYsIEA6OlxuICAgIEBwcm9wZXJ0eTogKCBrZXksIHNwZWNpZmllciApIC0+IHByb3BlcnR5IGtleSwgc3BlY2lmaWVyLCBAOjpcbiAgICBAZ2V0dGVyczogKCBkaWN0aW9uYXJ5ICkgLT4gZ2V0dGVycyBkaWN0aW9uYXJ5LCBAOjpcbiAgICBAc2V0dGVyczogKCBkaWN0aW9uYXJ5ICkgLT4gc2V0dGVycyBkaWN0aW9uYXJ5LCBAOjpcbiAgICBAcHJvcGVydGllczogKCBkaWN0aW9uYXJ5ICkgLT4gcHJvcGVydGllcyBkaWN0aW9uYXJ5LCBAOjpcblxuICAgIEAkZ2V0dGVyOiAoIGtleSwgZiApIC0+IGdldHRlciBrZXksIGYsIEBcbiAgICBAJHNldHRlcjogKCBrZXksIGYgKSAtPiBzZXR0ZXIga2V5LCBmLCBAXG4gICAgQCRwcm9wZXJ0eTogKCBrZXksIHNwZWNpZmllciApIC0+IHByb3BlcnR5IGtleSwgc3BlY2lmaWVyLCBAXG4gICAgQCRnZXR0ZXJzOiAoIGRpY3Rpb25hcnkgKSAtPiBnZXR0ZXJzIGRpY3Rpb25hcnksIEBcbiAgICBAJHNldHRlcnM6ICggZGljdGlvbmFyeSApIC0+IHNldHRlcnMgZGljdGlvbmFyeSwgQFxuICAgIEAkcHJvcGVydGllczogKCBkaWN0aW9uYXJ5ICkgLT4gcHJvcGVydGllcyBkaWN0aW9uYXJ5LCBAXG5cbmV4cG9ydCB7XG4gIHByb3BlcnR5XG4gIGdldHRlclxuICBzZXR0ZXJcbiAgbWV0aG9kXG4gIHByb3BlcnRpZXNcbiAgZ2V0dGVyc1xuICBzZXR0ZXJzXG4gIG1ldGhvZHNcbiAgbWl4aW5cbiAgbWV0YWNsYXNzXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxVQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsRUFBQTtBQUFBLE9BQUEsRUFBUSxLQUFSLFFBQUEsYUFBQTtBQUNBLE9BQUEsRUFBUSxLQUFSLFFBQUEsV0FBQTtBQUVBLFFBQUEsR0FBVyxLQUFBLENBQU0sUUFBQSxDQUFDLEdBQUQsRUFBTSxXQUFOLEVBQW1CLE1BQW5CLENBQUE7V0FDZixNQUFNLENBQUMsY0FBUCxDQUFzQixNQUF0QixFQUE4QixHQUE5QixFQUNFLEtBQUEsQ0FBTTtRQUFFLFVBQUEsRUFBWSxJQUFkO1FBQW9CLFlBQUEsRUFBYztJQUFsQyxDQUFOLEVBQWdELFdBQWhELENBREY7QUFEZSxDQUFOO0FBSVgsTUFBQSxHQUFTLEtBQUEsQ0FBTSxRQUFBLENBQUMsR0FBRCxFQUFNLENBQU4sRUFBUyxNQUFULENBQUE7V0FBb0IsUUFBQSxDQUFTLEdBQVQsRUFBYztRQUFDLEdBQUEsRUFBSztJQUFOLENBQWQsRUFBd0IsTUFBeEI7QUFBcEIsQ0FBTjtBQUNULE1BQUEsR0FBUyxLQUFBLENBQU0sUUFBQSxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsTUFBVCxDQUFBO1dBQW9CLFFBQUEsQ0FBUyxHQUFULEVBQWM7UUFBQyxHQUFBLEVBQUs7SUFBTixDQUFkLEVBQXdCLE1BQXhCO0FBQXBCLENBQU47QUFDVCxNQUFBLEdBQVMsS0FBQSxDQUFNLFFBQUEsQ0FBQyxHQUFELEVBQU0sQ0FBTixFQUFTLE1BQVQsQ0FBQTtXQUNiLFFBQUEsQ0FBUyxHQUFULEVBQWM7UUFBQyxLQUFBLEVBQU8sQ0FBUjtRQUFXLFlBQUEs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