@pie-lib/rubric 0.10.0-beta.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1 -407
- package/CHANGELOG.md +75 -31
- package/package.json +4 -3
- package/lib/__tests__/rubric.test.js +0 -116
- package/lib/authoring.js +0 -573
- package/lib/index.js +0 -24
- package/lib/point-menu.js +0 -172
package/lib/index.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
Object.defineProperty(exports, "Authoring", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function get() {
|
|
11
|
-
return _authoring["default"];
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
exports.RUBRIC_TYPES = void 0;
|
|
15
|
-
|
|
16
|
-
var _authoring = _interopRequireDefault(require("./authoring"));
|
|
17
|
-
|
|
18
|
-
var RUBRIC_TYPES = {
|
|
19
|
-
SIMPLE_RUBRIC: 'simpleRubric',
|
|
20
|
-
MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
|
|
21
|
-
RUBRICLESS: 'rubricless'
|
|
22
|
-
};
|
|
23
|
-
exports.RUBRIC_TYPES = RUBRIC_TYPES;
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJSVUJSSUNfVFlQRVMiLCJTSU1QTEVfUlVCUklDIiwiTVVMVElfVFJBSVRfUlVCUklDIiwiUlVCUklDTEVTUyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBTUEsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxhQUFhLEVBQUUsY0FESTtBQUVuQkMsRUFBQUEsa0JBQWtCLEVBQUUsa0JBRkQ7QUFHbkJDLEVBQUFBLFVBQVUsRUFBRTtBQUhPLENBQXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF1dGhvcmluZyBmcm9tICcuL2F1dGhvcmluZyc7XG5cbmNvbnN0IFJVQlJJQ19UWVBFUyA9IHtcbiAgU0lNUExFX1JVQlJJQzogJ3NpbXBsZVJ1YnJpYycsXG4gIE1VTFRJX1RSQUlUX1JVQlJJQzogJ211bHRpVHJhaXRSdWJyaWMnLFxuICBSVUJSSUNMRVNTOiAncnVicmljbGVzcycsXG59O1xuXG5leHBvcnQgeyBBdXRob3JpbmcsIFJVQlJJQ19UWVBFUyB9O1xuIl19
|
package/lib/point-menu.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = exports.IconMenu = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
|
-
var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
|
|
25
|
-
|
|
26
|
-
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
27
|
-
|
|
28
|
-
var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
|
|
29
|
-
|
|
30
|
-
var _MoreHoriz = _interopRequireDefault(require("@material-ui/icons/MoreHoriz"));
|
|
31
|
-
|
|
32
|
-
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
33
|
-
|
|
34
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
-
|
|
36
|
-
var _react = _interopRequireDefault(require("react"));
|
|
37
|
-
|
|
38
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
39
|
-
|
|
40
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
41
|
-
|
|
42
|
-
var IconMenu = /*#__PURE__*/function (_React$Component) {
|
|
43
|
-
(0, _inherits2["default"])(IconMenu, _React$Component);
|
|
44
|
-
|
|
45
|
-
var _super = _createSuper(IconMenu);
|
|
46
|
-
|
|
47
|
-
function IconMenu(props) {
|
|
48
|
-
var _this;
|
|
49
|
-
|
|
50
|
-
(0, _classCallCheck2["default"])(this, IconMenu);
|
|
51
|
-
_this = _super.call(this, props);
|
|
52
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (event) {
|
|
53
|
-
return _this.setState({
|
|
54
|
-
open: true,
|
|
55
|
-
anchorEl: event.currentTarget
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRequestClose", function () {
|
|
59
|
-
return _this.setState({
|
|
60
|
-
open: false
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
_this.state = {
|
|
64
|
-
anchorEl: undefined,
|
|
65
|
-
open: false
|
|
66
|
-
};
|
|
67
|
-
return _this;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
(0, _createClass2["default"])(IconMenu, [{
|
|
71
|
-
key: "render",
|
|
72
|
-
value: function render() {
|
|
73
|
-
var _this2 = this;
|
|
74
|
-
|
|
75
|
-
var _this$props = this.props,
|
|
76
|
-
opts = _this$props.opts,
|
|
77
|
-
onClick = _this$props.onClick,
|
|
78
|
-
classes = _this$props.classes;
|
|
79
|
-
var _this$state = this.state,
|
|
80
|
-
open = _this$state.open,
|
|
81
|
-
anchorEl = _this$state.anchorEl;
|
|
82
|
-
var keys = Object.keys(opts) || [];
|
|
83
|
-
|
|
84
|
-
var handleMenuClick = function handleMenuClick(key) {
|
|
85
|
-
return function () {
|
|
86
|
-
onClick(key);
|
|
87
|
-
|
|
88
|
-
_this2.handleRequestClose();
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
var iconColor = open ? 'inherit' : 'disabled';
|
|
93
|
-
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
94
|
-
onClick: this.handleClick
|
|
95
|
-
}, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
96
|
-
className: classes.icon
|
|
97
|
-
}, open ? /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], {
|
|
98
|
-
color: iconColor
|
|
99
|
-
}) : /*#__PURE__*/_react["default"].createElement(_MoreHoriz["default"], {
|
|
100
|
-
color: iconColor
|
|
101
|
-
}))), /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
|
|
102
|
-
id: "point-menu",
|
|
103
|
-
anchorEl: anchorEl,
|
|
104
|
-
open: open,
|
|
105
|
-
onClose: this.handleRequestClose,
|
|
106
|
-
style: {
|
|
107
|
-
transform: 'translate(-15px, -15px)'
|
|
108
|
-
},
|
|
109
|
-
transformOrigin: {
|
|
110
|
-
vertical: 'center',
|
|
111
|
-
horizontal: 'right'
|
|
112
|
-
}
|
|
113
|
-
}, keys.map(function (k, index) {
|
|
114
|
-
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
115
|
-
key: index,
|
|
116
|
-
onClick: handleMenuClick(k)
|
|
117
|
-
}, opts[k]);
|
|
118
|
-
})));
|
|
119
|
-
}
|
|
120
|
-
}]);
|
|
121
|
-
return IconMenu;
|
|
122
|
-
}(_react["default"].Component);
|
|
123
|
-
|
|
124
|
-
exports.IconMenu = IconMenu;
|
|
125
|
-
(0, _defineProperty2["default"])(IconMenu, "propTypes", {
|
|
126
|
-
opts: _propTypes["default"].object,
|
|
127
|
-
onClick: _propTypes["default"].func.isRequired,
|
|
128
|
-
classes: _propTypes["default"].object.isRequired
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
var PointMenu = /*#__PURE__*/function (_React$Component2) {
|
|
132
|
-
(0, _inherits2["default"])(PointMenu, _React$Component2);
|
|
133
|
-
|
|
134
|
-
var _super2 = _createSuper(PointMenu);
|
|
135
|
-
|
|
136
|
-
function PointMenu() {
|
|
137
|
-
(0, _classCallCheck2["default"])(this, PointMenu);
|
|
138
|
-
return _super2.apply(this, arguments);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
(0, _createClass2["default"])(PointMenu, [{
|
|
142
|
-
key: "render",
|
|
143
|
-
value: function render() {
|
|
144
|
-
var _this$props2 = this.props,
|
|
145
|
-
onChange = _this$props2.onChange,
|
|
146
|
-
classes = _this$props2.classes,
|
|
147
|
-
showSampleAnswer = _this$props2.showSampleAnswer;
|
|
148
|
-
var sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';
|
|
149
|
-
return /*#__PURE__*/_react["default"].createElement(IconMenu, {
|
|
150
|
-
onClick: function onClick(key) {
|
|
151
|
-
return onChange(key);
|
|
152
|
-
},
|
|
153
|
-
opts: {
|
|
154
|
-
sample: sampleText
|
|
155
|
-
},
|
|
156
|
-
classes: classes
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
}]);
|
|
160
|
-
return PointMenu;
|
|
161
|
-
}(_react["default"].Component);
|
|
162
|
-
|
|
163
|
-
exports["default"] = PointMenu;
|
|
164
|
-
(0, _defineProperty2["default"])(PointMenu, "propTypes", {
|
|
165
|
-
onChange: _propTypes["default"].func.isRequired,
|
|
166
|
-
classes: _propTypes["default"].object.isRequired,
|
|
167
|
-
showSampleAnswer: _propTypes["default"].bool.isRequired
|
|
168
|
-
});
|
|
169
|
-
(0, _defineProperty2["default"])(PointMenu, "defaultProps", {
|
|
170
|
-
classes: {}
|
|
171
|
-
});
|
|
172
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wb2ludC1tZW51LmpzeCJdLCJuYW1lcyI6WyJJY29uTWVudSIsInByb3BzIiwiZXZlbnQiLCJzZXRTdGF0ZSIsIm9wZW4iLCJhbmNob3JFbCIsImN1cnJlbnRUYXJnZXQiLCJzdGF0ZSIsInVuZGVmaW5lZCIsIm9wdHMiLCJvbkNsaWNrIiwiY2xhc3NlcyIsImtleXMiLCJPYmplY3QiLCJoYW5kbGVNZW51Q2xpY2siLCJrZXkiLCJoYW5kbGVSZXF1ZXN0Q2xvc2UiLCJpY29uQ29sb3IiLCJoYW5kbGVDbGljayIsImljb24iLCJ0cmFuc2Zvcm0iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJtYXAiLCJrIiwiaW5kZXgiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiUG9pbnRNZW51Iiwib25DaGFuZ2UiLCJzaG93U2FtcGxlQW5zd2VyIiwic2FtcGxlVGV4dCIsInNhbXBsZSIsImJvb2wiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztJQUVhQSxROzs7OztBQU9YLG9CQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7QUFDakIsOEJBQU1BLEtBQU47QUFEaUIsb0dBUUwsVUFBQ0MsS0FBRDtBQUFBLGFBQVcsTUFBS0MsUUFBTCxDQUFjO0FBQUVDLFFBQUFBLElBQUksRUFBRSxJQUFSO0FBQWNDLFFBQUFBLFFBQVEsRUFBRUgsS0FBSyxDQUFDSTtBQUE5QixPQUFkLENBQVg7QUFBQSxLQVJLO0FBQUEsMkdBVUU7QUFBQSxhQUFNLE1BQUtILFFBQUwsQ0FBYztBQUFFQyxRQUFBQSxJQUFJLEVBQUU7QUFBUixPQUFkLENBQU47QUFBQSxLQVZGO0FBRWpCLFVBQUtHLEtBQUwsR0FBYTtBQUNYRixNQUFBQSxRQUFRLEVBQUVHLFNBREM7QUFFWEosTUFBQUEsSUFBSSxFQUFFO0FBRkss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RUFBRUwsc0JBQVVFLElBQVYsQ0FBZUMsVUFEUjtBQUVqQnBCLEVBQUFBLE9BQU8sRUFBRWlCLHNCQUFVQyxNQUFWLENBQWlCRSxVQUZUO0FBR2pCRyxFQUFBQSxnQkFBZ0IsRUFBRU4sc0JBQVVTLElBQVYsQ0FBZU47QUFIaEIsQztpQ0FEQUMsUyxrQkFPRztBQUNwQnJCLEVBQUFBLE9BQU8sRUFBRTtBQURXLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWVudSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51JztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51SXRlbSc7XG5pbXBvcnQgTW9yZVZlcnRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Nb3JlVmVydCc7XG5pbXBvcnQgTW9yZUhvcml6SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvTW9yZUhvcml6JztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0ljb25CdXR0b24nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjbGFzcyBJY29uTWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3B0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYW5jaG9yRWw6IHVuZGVmaW5lZCxcbiAgICAgIG9wZW46IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVDbGljayA9IChldmVudCkgPT4gdGhpcy5zZXRTdGF0ZSh7IG9wZW46IHRydWUsIGFuY2hvckVsOiBldmVudC5jdXJyZW50VGFyZ2V0IH0pO1xuXG4gIGhhbmRsZVJlcXVlc3RDbG9zZSA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvcHRzLCBvbkNsaWNrLCBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgb3BlbiwgYW5jaG9yRWwgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9wdHMpIHx8IFtdO1xuXG4gICAgY29uc3QgaGFuZGxlTWVudUNsaWNrID0gKGtleSkgPT4gKCkgPT4ge1xuICAgICAgb25DbGljayhrZXkpO1xuICAgICAgdGhpcy5oYW5kbGVSZXF1ZXN0Q2xvc2UoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaWNvbkNvbG9yID0gb3BlbiA/ICdpbmhlcml0JyA6ICdkaXNhYmxlZCc7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfT5cbiAgICAgICAgICA8SWNvbkJ1dHRvbiBjbGFzc05hbWU9e2NsYXNzZXMuaWNvbn0+XG4gICAgICAgICAgICB7b3BlbiA/IDxNb3JlVmVydEljb24gY29sb3I9e2ljb25Db2xvcn0gLz4gOiA8TW9yZUhvcml6SWNvbiBjb2xvcj17aWNvbkNvbG9yfSAvPn1cbiAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8TWVudVxuICAgICAgICAgIGlkPVwicG9pbnQtbWVudVwiXG4gICAgICAgICAgYW5jaG9yRWw9e2FuY2hvckVsfVxuICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgb25DbG9zZT17dGhpcy5oYW5kbGVSZXF1ZXN0Q2xvc2V9XG4gICAgICAgICAgc3R5bGU9e3sgdHJhbnNmb3JtOiAndHJhbnNsYXRlKC0xNXB4LCAtMTVweCknIH19XG4gICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7XG4gICAgICAgICAgICB2ZXJ0aWNhbDogJ2NlbnRlcicsXG4gICAgICAgICAgICBob3Jpem9udGFsOiAncmlnaHQnLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7a2V5cy5tYXAoKGssIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpbmRleH0gb25DbGljaz17aGFuZGxlTWVudUNsaWNrKGspfT5cbiAgICAgICAgICAgICAge29wdHNba119XG4gICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L01lbnU+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvaW50TWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNob3dTYW1wbGVBbnN3ZXI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc2VzOiB7fSxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvbkNoYW5nZSwgY2xhc3Nlcywgc2hvd1NhbXBsZUFuc3dlciB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBzYW1wbGVUZXh0ID0gc2hvd1NhbXBsZUFuc3dlciA/ICdQcm92aWRlIFNhbXBsZSBSZXNwb25zZScgOiAnUmVtb3ZlIFNhbXBsZSBSZXNwb25zZSc7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEljb25NZW51XG4gICAgICAgIG9uQ2xpY2s9eyhrZXkpID0+IG9uQ2hhbmdlKGtleSl9XG4gICAgICAgIG9wdHM9e3tcbiAgICAgICAgICBzYW1wbGU6IHNhbXBsZVRleHQsXG4gICAgICAgIH19XG4gICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|