diff --git a/.gitignore b/.gitignore
index 6f1ca902f..5a2f07fae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
/dist/
index.php
-package-lock.json
node_modules/
\ No newline at end of file
diff --git a/index.html b/index.html
index 21dc242be..24ae4d553 100644
--- a/index.html
+++ b/index.html
@@ -24,7 +24,7 @@
An error occurred while loading Blockbench
diff --git a/js/api.js b/js/api.js
index b818d2407..ac205551e 100644
--- a/js/api.js
+++ b/js/api.js
@@ -92,43 +92,6 @@ const Blockbench = {
}
}
return node
- /*
- if (icon === undefined) {
- //Missing
- jq = $('
help_outline')
- } else if (icon instanceof HTMLElement) {
- //Node
- jq = $(icon)
- } else if (icon.substr(0, 2) === 'fa') {
- //Font Awesome
- if (icon.substr(3, 1) == '.') {
- jq = $(`
`)
- } else {
- jq = $('
')
- }
- } else if (icon.substr(0, 5) === 'icon-') {
- //Icomoon
- jq = $('
')
- } else if (icon.substr(0, 14) === 'data:image/png') {
- //Data URL
- jq = $('
')
- } else {
- //Material Icon
- jq = $('
' + icon + '')
- }
- if (color) {
- if (color === 'x') {
- jq.addClass('color_x')
- } else if (color === 'y') {
- jq.addClass('color_y')
- } else if (color === 'z') {
- jq.addClass('color_z')
- } else if (typeof color === 'string') {
- jq.css('color', color)
- }
- }
- return jq.get(0)
- */
},
showQuickMessage(message, time) {
$('#quick_message_box').remove()
diff --git a/js/interface/language.js b/js/interface/language.js
index eb88f78b9..51f468927 100644
--- a/js/interface/language.js
+++ b/js/interface/language.js
@@ -33,6 +33,7 @@ const Language = {
fr: 'Fran\u00E7ais (French)',
it: 'Italiano (Italian)',
ja: '\u65E5\u672C\u8A9E (Japanese)',//日本語
+ ko: '\uD55C\uAD6D\uC5B4 (Korean)',//日本語
nl: 'Nederlands (Dutch)',
pl: 'Polski (Polish)',
pt: 'Portugu\u00EAs (Portuguese)',
diff --git a/js/io/bedrock.js b/js/io/bedrock.js
index 767c9c639..6846c2f2b 100644
--- a/js/io/bedrock.js
+++ b/js/io/bedrock.js
@@ -297,7 +297,7 @@ function parseGeometry(data) {
material: b.material
}).init()
group.createUniqueName();
- bones[group.name] = group
+ bones[b.name] = group
if (b.pivot) {
group.origin[0] *= -1
}
diff --git a/js/io/modded_entity.js b/js/io/modded_entity.js
index 2ab66acef..2a0a29afb 100644
--- a/js/io/modded_entity.js
+++ b/js/io/modded_entity.js
@@ -382,8 +382,9 @@ var codec = new Codec('modded_entity', {
} else if (scope == 1) {
line = line.replace(/public |static |final |private |void /g, '').trim();
if (line.substr(0, 13) == 'ModelRenderer' || line.substr(0, 13) == 'RendererModel') {
- bones[line.split(' ')[1]] = new Group({
- name: line.split(' ')[1],
+ let name = line.split(' ')[1];
+ bones[name] = new Group({
+ name,
origin: [0, 24, 0]
}).init();
} else if (line.substr(0, geo_name.length) == geo_name) {
diff --git a/js/outliner/cube.js b/js/outliner/cube.js
index 22fb32ae1..67046fe2b 100644
--- a/js/outliner/cube.js
+++ b/js/outliner/cube.js
@@ -216,10 +216,14 @@ class Cube extends NonGroup {
}
size(axis, floored) {
var scope = this;
+ let epsilon = 0.0000001;
function getA(axis) {
- if (floored === true) {
- var n = Math.floor(0.0000001 + scope.to[axis] - scope.from[axis])
- return n;
+ if (floored == TextureGenerator && Format.id === 'modded_entity') {
+ return Math.ceil(scope.to[axis] - scope.from[axis] - epsilon);
+
+ } else if (floored && Format.id !== 'modded_entity') {
+ return Math.floor(scope.to[axis] - scope.from[axis] + epsilon);
+
} else {
return scope.to[axis] - scope.from[axis]
}
diff --git a/js/outliner/group.js b/js/outliner/group.js
index ae692ef37..99cb3b0eb 100644
--- a/js/outliner/group.js
+++ b/js/outliner/group.js
@@ -388,7 +388,7 @@ class Group extends OutlinerElement {
Group.prototype.type = 'group';
Group.prototype.icon = 'fa fa-folder';
Group.prototype.isParent = true;
- Group.prototype.name_regex = () => Format.bone_rig ? 'a-z0-9_' : false;
+ Group.prototype.name_regex = () => Format.bone_rig ? 'a-zA-Z0-9_' : false;
Group.prototype.buttons = [
Outliner.buttons.visibility,
Outliner.buttons.locked,
@@ -403,14 +403,6 @@ class Group extends OutlinerElement {
'duplicate',
'_',
'add_locator',
- /*
- {icon: 'content_copy', name: 'menu.group.duplicate', click: function(group) {
- var cubes_before = elements.length
- Undo.initEdit({outliner: true, elements: [], selection: true})
- group.duplicate().sortInBefore(this, 1).select()
- Undo.finishEdit('duplicate_group', {outliner: true, elements: elements.slice(cubes_before), selection: true})
- }},
- */
'rename',
{icon: 'sort_by_alpha', name: 'menu.group.sort', condition: {modes: ['edit']}, click: function(group) {group.sortContent()}},
{icon: 'fa-leaf', name: 'menu.group.resolve', condition: {modes: ['edit']}, click: function(group) {
@@ -418,6 +410,7 @@ class Group extends OutlinerElement {
group.resolve()
Undo.finishEdit('group resolve')
}},
+ 'delete'
]);
Group.selected;
Group.all = [];
diff --git a/js/outliner/outliner.js b/js/outliner/outliner.js
index 75dde0489..9b344db40 100644
--- a/js/outliner/outliner.js
+++ b/js/outliner/outliner.js
@@ -298,7 +298,7 @@ class OutlinerElement {
var name = this.name.replace(/\d+$/, '').replace(/\s+/g, '_');
function check(n) {
for (var i = 0; i < others.length; i++) {
- if (others[i] !== scope && others[i].name == n) return false;
+ if (others[i] !== scope && others[i].name.toLowerCase() == n.toLowerCase()) return false;
}
return true;
}
diff --git a/js/texturing/painter.js b/js/texturing/painter.js
index 0fb00a498..596872d1b 100644
--- a/js/texturing/painter.js
+++ b/js/texturing/painter.js
@@ -449,6 +449,7 @@ const Painter = {
//calculate new point
if (face.uv[0] > face.uv[0+2] == uvTag[0] > uvTag[0+2]) {
point_on_uv[0] = Math.max(face.uv[0], face.uv[0+2]) * uvFactorX - point_on_uv[0] - 1;
+ if (BarItems.slider_brush_size.get()%2 == 0 && Toolbox.selected.brushTool) point_on_uv[0] += 1
} else {
point_on_uv[0] = Math.min(face.uv[0], face.uv[0+2]) * uvFactorX + point_on_uv[0];
}
diff --git a/js/texturing/texture_generator.js b/js/texturing/texture_generator.js
index 2d08809ee..478476791 100644
--- a/js/texturing/texture_generator.js
+++ b/js/texturing/texture_generator.js
@@ -138,13 +138,13 @@ const TextureGenerator = {
},
//constructor
boxUVCubeTemplate: function(obj, min_size) {
- this.x = obj.size(0, true) || min_size;
- this.y = obj.size(1, true) || min_size;
- this.z = obj.size(2, true) || min_size;
+ this.x = obj.size(0, TextureGenerator) || min_size;
+ this.y = obj.size(1, 'template') || min_size;
+ this.z = obj.size(2, TextureGenerator) || min_size;
this.posx = obj.uv_offset[0];
this.posy = obj.uv_offset[1];
this.obj = obj;
- this.template_size = (obj.size(2, true) + obj.size(1, true))+ (obj.size(2, true) + obj.size(0, true))*2;
+ this.template_size = (obj.size(2, TextureGenerator) + obj.size(1, 'template'))+ (obj.size(2, TextureGenerator) + obj.size(0, TextureGenerator))*2;
this.height = this.z + this.y;
this.width = 2* (this.x + this.z);
@@ -170,7 +170,7 @@ const TextureGenerator = {
if (obj.visibility === true) {
var template = new TextureGenerator.boxUVCubeTemplate(obj, min_size);
if (options.double_use && Project.box_uv && textures.length) {
- var double_key = [...obj.uv_offset, ...obj.size(undefined, true), ].join('_')
+ var double_key = [...obj.uv_offset, ...obj.size(undefined, TextureGenerator), ].join('_')
if (doubles[double_key]) {
// improve chances that original is not mirrored
if (doubles[double_key][0].obj.mirror_uv && !obj.mirror_uv) {
diff --git a/lang/de.json b/lang/de.json
index 15ef88859..42ff37f89 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -1087,27 +1087,27 @@
"dialog.skin.pose": "Pose",
"layout.color.frame": "Fensterrahmen",
"layout.color.frame.desc": "Rand und Titelleiste des Fensters",
- "settings.large_grid_size": "Block Grid Size",
- "settings.large_grid_size.desc": "Size of the block grid",
- "action.load_plugin_from_url": "Load Plugin from URL",
- "action.load_plugin_from_url.desc": "Load a plugin from a server by specifying the URL",
- "action.cube_counter.desc": "Displays the current number of cubes and other statistics",
- "action.unlock_everything": "Unlock Everything",
- "action.unlock_everything.desc": "Unlock all groups and elements in the outliner.",
+ "settings.large_grid_size": "Blockgitter-Größe",
+ "settings.large_grid_size.desc": "Die Größe des Blockgitters",
+ "action.load_plugin_from_url": "Plugin über URL laden",
+ "action.load_plugin_from_url.desc": "Ein Plugin von einen Server laden durch die Eingabe der URL",
+ "action.cube_counter.desc": "Zeigt die aktuelle Anzahl an Elementen und andere Statistiken an",
+ "action.unlock_everything": "Alle entsperren",
+ "action.unlock_everything.desc": "Entsperrt alle Gruppen und Elemente im Outliner",
"action.load_palette": "Palette laden",
"action.load_palette.desc": "Eine der mitgelieferten Paletten laden",
- "action.toggle_locked": "Toggle Lock",
- "action.toggle_locked.desc": "Toggle whether the selected elements are locked",
- "action.apply_display_preset": "Apply Preset",
- "action.apply_display_preset.desc": "Apply a default or custom display setting preset",
- "action.apply_display_preset.here": "Apply To This Slot",
- "action.apply_display_preset.everywhere": "Apply To All Slots",
- "action.resolve_keyframe_expressions": "Resolve Keyframe",
- "action.resolve_keyframe_expressions.desc": "Resolves the math expressions of the selected keyframes",
- "action.fold_all_animations": "Fold All Animators",
+ "action.toggle_locked": "Sperren/Entsperren",
+ "action.toggle_locked.desc": "Sperrt oder entsperrt das Objekt",
+ "action.apply_display_preset": "Vorlage anwenden",
+ "action.apply_display_preset.desc": "Wendet eine Display Settings Vorlage an",
+ "action.apply_display_preset.here": "Auf ausgewählte Position anwenden",
+ "action.apply_display_preset.everywhere": "Auf alle Positionen anwenden",
+ "action.resolve_keyframe_expressions": "Keyframe ausrechnen",
+ "action.resolve_keyframe_expressions.desc": "Rechnet die mathematischen Ausdrücke eines Keyframes aus, um sie in Zahlen umzuwandeln",
+ "action.fold_all_animations": "Alle Animatoren einklappen",
"action.timeline_focus.used": "Verwendet",
"menu.palette.load.empty": "Leer",
- "switches.lock": "Lock",
- "camera_angle.isometric_right": "Isometric Right",
- "camera_angle.isometric_left": "Isometric Left"
+ "switches.lock": "Sperren",
+ "camera_angle.isometric_right": "Isometrisch Rechts",
+ "camera_angle.isometric_left": "Isometrisch Links"
}
\ No newline at end of file
diff --git a/lang/en.json b/lang/en.json
index 04ae90842..bf19dee66 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -745,7 +745,7 @@
"action.delete.desc": "Deletes the selected cubes or group",
"action.sort_outliner": "Sort Outliner",
"action.sort_outliner.desc": "Sort the outliner alphabetically",
- "action.unlock_everything": "Unlock Everything",
+ "action.unlock_everything": "Unlock All",
"action.unlock_everything.desc": "Unlock all groups and elements in the outliner.",
"action.element_colors": "Cube Colors",
"action.element_colors.desc": "Show cube colors in the outliner",
diff --git a/lang/es.json b/lang/es.json
index 2669bb8c5..3bf02de9b 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -1081,33 +1081,33 @@
"uv_editor.copy_paste_tool.mirror_x": "Invertir X",
"uv_editor.copy_paste_tool.mirror_y": "Invertir Y",
"uv_editor.copy_paste_tool.rotate": "Rotar 90 Grados",
- "dialog.project.modded_entity_version": "Export Version",
- "dialog.save_angle.position": "Camera Position",
- "dialog.save_angle.target": "Focal Point",
+ "dialog.project.modded_entity_version": "Exportar Versión",
+ "dialog.save_angle.position": "Posición de la Cámara",
+ "dialog.save_angle.target": "Punto Focal",
"dialog.skin.pose": "Pose",
- "layout.color.frame": "Window Frame",
- "layout.color.frame.desc": "Border and title bar of the window",
- "settings.large_grid_size": "Block Grid Size",
- "settings.large_grid_size.desc": "Size of the block grid",
- "action.load_plugin_from_url": "Load Plugin from URL",
- "action.load_plugin_from_url.desc": "Load a plugin from a server by specifying the URL",
- "action.cube_counter.desc": "Displays the current number of cubes and other statistics",
- "action.unlock_everything": "Unlock Everything",
- "action.unlock_everything.desc": "Unlock all groups and elements in the outliner.",
- "action.load_palette": "Load Palette",
- "action.load_palette.desc": "Load one of the built-in palette presets",
- "action.toggle_locked": "Toggle Lock",
- "action.toggle_locked.desc": "Toggle whether the selected elements are locked",
- "action.apply_display_preset": "Apply Preset",
- "action.apply_display_preset.desc": "Apply a default or custom display setting preset",
- "action.apply_display_preset.here": "Apply To This Slot",
- "action.apply_display_preset.everywhere": "Apply To All Slots",
- "action.resolve_keyframe_expressions": "Resolve Keyframe",
- "action.resolve_keyframe_expressions.desc": "Resolves the math expressions of the selected keyframes",
- "action.fold_all_animations": "Fold All Animators",
- "action.timeline_focus.used": "In Use",
- "menu.palette.load.empty": "Blank",
- "switches.lock": "Lock",
- "camera_angle.isometric_right": "Isometric Right",
- "camera_angle.isometric_left": "Isometric Left"
+ "layout.color.frame": "Marco de Ventana",
+ "layout.color.frame.desc": "Borde y barra de título de la ventana",
+ "settings.large_grid_size": "Tamaño del Bloque de Cuadrícula",
+ "settings.large_grid_size.desc": "Tamaño del bloque de la cuadrícula",
+ "action.load_plugin_from_url": "Cargar Plugin desde URL",
+ "action.load_plugin_from_url.desc": "Carga un plugin desde un servidor a través de una URL",
+ "action.cube_counter.desc": "Muestra el número actual de cubos y otras estadísticas",
+ "action.unlock_everything": "Desbloquear Todo",
+ "action.unlock_everything.desc": "Desbloquea todos los grupos y elementos en el Esquema",
+ "action.load_palette": "Cargar Paleta",
+ "action.load_palette.desc": "Carga una de las plantillas de paletas predeterminadas",
+ "action.toggle_locked": "Cambiar Bloqueo",
+ "action.toggle_locked.desc": "Cambiar si los elementos actuales están bloqueados o no",
+ "action.apply_display_preset": "Aplicar Plantilla",
+ "action.apply_display_preset.desc": "Aplica una plantilla de ajustes de visualización por defecto o personalizada",
+ "action.apply_display_preset.here": "Aplicar A Este Apartado",
+ "action.apply_display_preset.everywhere": "Aplicar A Todos los Apartados",
+ "action.resolve_keyframe_expressions": "Resolver Frame Clave",
+ "action.resolve_keyframe_expressions.desc": "Resuelve las expresiones matemáticas de los frames clave seleccionados",
+ "action.fold_all_animations": "Plegar Todos los Animadores",
+ "action.timeline_focus.used": "En Uso",
+ "menu.palette.load.empty": "Vacío",
+ "switches.lock": "Bloquear",
+ "camera_angle.isometric_right": "Derecha Isométrica",
+ "camera_angle.isometric_left": "Izquierda Isométrica"
}
\ No newline at end of file
diff --git a/lang/ko.json b/lang/ko.json
new file mode 100644
index 000000000..8652c2ee7
--- /dev/null
+++ b/lang/ko.json
@@ -0,0 +1,1113 @@
+{
+ "dialog.ok": "확인",
+ "dialog.cancel": "취소",
+ "dialog.confirm": "계속하기",
+ "dialog.close": "닫기",
+ "dialog.import": "가져오기",
+ "dialog.save": "저장하기",
+ "dialog.discard": "버리기",
+ "dialog.dontshowagain": "다시 표시하지 않습니다",
+ "data.cube": "큐브",
+ "data.group": "그룹",
+ "data.texture": "텍스쳐",
+ "data.plugin": "플러그인\n",
+ "data.preview": "미리보기",
+ "data.toolbar": "도구 창",
+ "data.image": "이미지",
+ "keys.ctrl": "Ctrl",
+ "keys.shift": "Shift",
+ "keys.alt": "Alt",
+ "keys.meta": "커맨드 키",
+ "keys.delete": "Delete",
+ "keys.space": "Space",
+ "keys.leftclick": "왼쪽 마우스 클릭",
+ "keys.middleclick": "가운데 마우스 클릭",
+ "keys.rightclick": "오른쪽 마우스 클릭",
+ "keys.tab": "Tab",
+ "keys.backspace": "Backspace",
+ "keys.enter": "Enter",
+ "keys.escape": "Esc",
+ "keys.function": "F%0",
+ "keys.numpad": "키패드 %0",
+ "keys.caps": "Capslock",
+ "keys.menu": "Menu",
+ "keys.left": "←",
+ "keys.up": "↑",
+ "keys.right": "→",
+ "keys.down": "↓",
+ "keys.pageup": "Page Up",
+ "keys.pagedown": "Page Down",
+ "keys.plus": "+",
+ "keys.comma": ",",
+ "keys.point": ".",
+ "keys.minus": "-",
+ "keys.cross": "+",
+ "keys.end": "End",
+ "keys.pos1": "Home",
+ "keys.printscreen": "Print Screen",
+ "keys.pause": "Pause",
+ "message.rotation_limit.title": "각도 제한",
+ "message.rotation_limit.message": "마인크래프트에서는 각을 22.5도씩만 조절할 수 있습니다. 또한 회전은 한 방향으로만 할 수 있습니다. \"자유 모델\"을 활성화하면 제한이 풀리는 대신 마인크래프트에 적용하기 힘들어집니다.",
+ "message.file_not_found.title": "파일을 찾을 수 없습니다",
+ "message.file_not_found.message": "지정된 파일을 불러올 수 없습니다. 클라우드 같은 가상 폴더에 저장된 파일이 아닌지 확인하십시오.",
+ "message.screenshot.title": "스크린샷",
+ "message.screenshot.message": "스크린 샷을 캡쳐했습니다.",
+ "message.screenshot.clipboard": "클립보드",
+ "message.screenshot.right_click": "오른쪽 마우스로 스크린 샷을 저장합니다",
+ "message.invalid_file.title": "유효하지 않은 파일",
+ "message.invalid_file.message": "유효하지 않은 .json 파일 : %0",
+ "message.invalid_model.title": "유효하지 않은 모델 파일",
+ "message.invalid_model.message": "이 파일은 모델에 관련된 파일이 아닙니다.",
+ "message.child_model_only.title": "비어있는 자식 모델",
+ "message.child_model_only.message": "이 파일은 %0의 자식 모델이며 내용이 없습니다.",
+ "message.drag_background.title": "배경 위치 이동",
+ "message.drag_background.message": "배경을 드래그하여 배경 위치를 이동합니다. 쉬프트를 누르고 드래그하면 배경 크기를 조절할 수 있습니다.",
+ "message.unsaved_textures.title": "저장되지 않은 텍스쳐",
+ "message.unsaved_textures.message": "당신의 모델에는 지정되지 않은 텍스쳐가 포함되어있습니다. 리소스팩 내부의 알맞는 폴더에 텍스쳐를 삽입하십시오.",
+ "message.model_clipping.title": "모델이 너무 큽니다",
+ "message.model_clipping.message": "\"%0\"로 지정된 큐브가3x3x3 크기 제한을 넘어가고 있습니다. 이 모델은 마인크래프트에서 사용이 불가능해집니다.",
+ "message.loose_texture.title": "텍스쳐 가져오기",
+ "message.loose_texture.message": "방금 불러온 텍스쳐는 옳지 않은 경로에 있습니다. 마인크래프트에서 정상적으로 불러내기 위해서는 리소스팩 폴더 내부에 텍스쳐가 있어야 합니다.",
+ "message.loose_texture.change": "경로 변경하기",
+ "message.update_res.title": "텍스쳐 해상도",
+ "message.update_res.message": "프로젝트 해상도를 이 텍스쳐의 해상도로 업데이트 하시겠습니까? 텍스쳐의 해상도가 프로젝트보다 높은 경우 '취소'를 클릭하십시오.",
+ "message.update_res.update": "업데이트",
+ "message.bedrock_overwrite_error.message": "Blockbench가 이전 모델과 이 모델을 합치는데 실패했습니다.",
+ "message.bedrock_overwrite_error.backup_overwrite": "백업 만들고 덮어쓰기",
+ "message.bedrock_overwrite_error.overwrite": "덮어쓰기",
+ "message.close_warning.message": "모델을 저장하시겠습니까?",
+ "message.close_warning.web": "진행된 작업을 잃을 것입니다. 저장하지 않고 나가시겠습니까?",
+ "message.default_textures.title": "기본 텍스쳐",
+ "message.default_textures.message": "바닐라 리소스팩의 \"textures\" 폴더를 선택",
+ "message.default_textures.detail": "마인크래프트 내부의 jar 파일에서 기본 리소스팩을 추출하거나 웹에서 다운로드 하십시오. 그런 다음 textures 폴더를 찾아 여십시오. Blockbench가 해당 위치를 기억하고 현재 리소스 팩에서 찾을 수없는 경우 기본 리소스팩에서 텍스쳐를 가져옵니다.",
+ "message.default_textures.select": "기본 텍스쳐 폴더 선택",
+ "message.image_editor.title": "이미지 편집 프로그램 선택하기",
+ "message.image_editor.file": "파일 열기...",
+ "message.image_editor.exe": "실행 가능한 이미지 편집 프로그램 선택하기",
+ "message.display_skin.title": "스킨 표시",
+ "message.display_skin.message": "플레이어 이름을 쓰거나 컴퓨터에서 파일을 골라 스킨 변경",
+ "message.display_skin.upload": "스킨 저장",
+ "message.display_skin.name": "사용자 이름",
+ "message.display_skin.reset": "초기화",
+ "message.invalid_plugin": "잘못된 플러그인입니다. 콘솔을 확인하십시오",
+ "message.load_plugin_app": "이 플러그인이 당신의 컴퓨터를 변경할 수 있도록 하용하시겠습니까? 신뢰할 수 있는 플러그인만 불러오십시오.",
+ "message.load_plugin_web": "이 플러그인을 불러올까요? 신뢰할 수 있는 플러그인만 불러오십시오.",
+ "message.preset_no_info": "사전 설정에서 이 슬롯에 대한 정보가 없음",
+ "message.restart_to_update": "Blockbench 재시작",
+ "message.save_file": "%0를 저장했습니다",
+ "message.save_obj": ".obj로 저장하기",
+ "dialog.project.title": "프로젝트",
+ "dialog.project.name": "파일 이름",
+ "dialog.project.parent": "부모 모델",
+ "dialog.project.geoname": "몹 지오메트리 이름",
+ "dialog.project.openparent": "부모 모델 열기",
+ "dialog.project.ao": "동적 그림자",
+ "dialog.project.width": "텍스쳐 가로 크기",
+ "dialog.project.height": "텍스쳐 세로 크기",
+ "dialog.texture.title": "텍스쳐",
+ "dialog.texture.variable": "변수",
+ "dialog.texture.namespace": "이름 공간",
+ "dialog.texture.folder": "폴더",
+ "dialog.extrude.title": "이미지 확장",
+ "dialog.extrude.mode": "읽기 모드",
+ "dialog.extrude.mode.areas": "영역",
+ "dialog.extrude.mode.lines": "선",
+ "dialog.extrude.mode.columns": "열",
+ "dialog.extrude.mode.pixels": "픽셀",
+ "dialog.extrude.opacity": "최소 투명도",
+ "dialog.extrude.scan": "읽기 및 가져오기",
+ "dialog.display_preset.title": "사전 설정 추가",
+ "dialog.display_preset.message": "저장하고 싶은 슬롯 선택",
+ "dialog.display_preset.create": "만들기",
+ "dialog.select.title": "선택",
+ "dialog.select.new": "새로 선택",
+ "dialog.select.group": "선택된 그룹",
+ "dialog.select.name": "이름 포함",
+ "dialog.select.random": "랜덤",
+ "dialog.select.select": "선택",
+ "dialog.scale.title": "모델 크기",
+ "dialog.scale.axis": "축",
+ "dialog.scale.scale": "크기",
+ "dialog.scale.clipping": "모델 클리핑: 모델이 캔버스보다 너무 큽니다.",
+ "dialog.scale.confirm": "크기",
+ "dialog.plugins.title": "플러그인",
+ "dialog.plugins.installed": "설치된 플러그인",
+ "dialog.plugins.available": "활성화된 플러그인",
+ "dialog.plugins.install": "플러그인 설치",
+ "dialog.plugins.uninstall": "플러그인 제거",
+ "dialog.plugins.reload": "플러그인 새로고침",
+ "dialog.plugins.none_installed": "설치된 플러그인이 없습니다.",
+ "dialog.plugins.none_available": "활성화된 플러그인이 없습니다.",
+ "dialog.plugins.outdated": "상위 버전의 Blockbench가 필요합니다.",
+ "dialog.plugins.web_only": "웹 버전 전용",
+ "dialog.plugins.app_only": "설치 버전 전용",
+ "dialog.plugins.author": "제작 : %0",
+ "dialog.plugins.show_less": "표시 제한",
+ "dialog.entitylist.title": "엔티티 모델 열기",
+ "dialog.entitylist.text": "불러올 모델 선택하기",
+ "dialog.entitylist.bones": "뼈대",
+ "dialog.entitylist.cubes": "큐브",
+ "dialog.create_texture.folder": "폴더",
+ "dialog.create_texture.template": "템플릿",
+ "dialog.create_texture.resolution": "텍스쳐 해상도",
+ "dialog.input.title": "입력",
+ "dialog.update.title": "업데이트",
+ "dialog.update.refresh": "재시도",
+ "dialog.update.up_to_date": "Blockbench를 업데이트하여야 합니다!",
+ "dialog.update.connecting": "서버 연결 중",
+ "dialog.settings.settings": "설정",
+ "dialog.settings.keybinds": "키 설정",
+ "dialog.settings.about": "정보",
+ "layout.color.back": "뒤로",
+ "layout.color.back.desc": "배경 및 입력창",
+ "layout.color.dark": "어두움",
+ "layout.color.dark.desc": "캔버스 배경",
+ "layout.color.ui": "UI",
+ "layout.color.ui.desc": "주 화면 색상",
+ "layout.color.bright_ui": "밝은 UI",
+ "layout.color.bright_ui.desc": "컨텍스트 메뉴 및 툴팁",
+ "layout.color.button": "버튼",
+ "layout.color.button.desc": "버튼과 스위치",
+ "layout.color.selected": "선택됨",
+ "layout.color.selected.desc": "선택 창 및 오브젝트",
+ "layout.color.border": "경계",
+ "layout.color.border.desc": "입력창 및 버튼의 테두리",
+ "layout.color.accent": "강조",
+ "layout.color.accent.desc": "슬라이더 바 및 세부사항",
+ "layout.color.grid": "격자",
+ "layout.color.grid.desc": "3D 미리보기 격자",
+ "layout.color.text": "텍스트",
+ "layout.color.text.desc": "일반 텍스트",
+ "layout.color.light": "빛",
+ "layout.color.light.desc": "하이라이트 글씨",
+ "layout.color.accent_text": "강조된 글씨",
+ "layout.color.accent_text.desc": "밝거나 강조된 요소의 텍스트",
+ "layout.font.main": "주 폰트",
+ "layout.font.headline": "헤드라인 폰트",
+ "about.version": "버전:",
+ "about.creator": "제작자:",
+ "about.website": "웹사이트:",
+ "about.bugtracker": "버그 제보:",
+ "about.electron": "이 프로그램은 Electron으로 제작되었습니다.",
+ "about.vertex_snap": "꼭짓점 맞춤 기능 제작 : SirBenet",
+ "about.icons": "아이콘 팩:",
+ "about.libraries": "라이브러리",
+ "settings.category.general": "일반",
+ "settings.category.preview": "미리보기",
+ "settings.category.grid": "격자",
+ "settings.category.edit": "편집",
+ "settings.category.snapping": "스내핑",
+ "settings.category.defaults": "기본",
+ "settings.category.dialogs": "대화 상자",
+ "settings.category.export": "내보내기 설정",
+ "settings.language": "언어",
+ "settings.language.desc": "언어. 변경 사항을 적용하려면 Blockbench 재시작 필요",
+ "settings.show_actions": "액션 표시",
+ "settings.show_actions.desc": "상태 표시 줄에 있는 모든 행동 표시",
+ "settings.backup_interval": "백업 주기",
+ "settings.backup_interval.desc": "분당 자동 백업 주기입니다.",
+ "settings.origin_size": "중점 표시",
+ "settings.origin_size.desc": "회전 중심을 보여주는 선의 길이를 조절합니다",
+ "settings.control_size": "축 화살표 크기",
+ "settings.control_size.desc": "각 축에 달린 화살표의 크기를 조절합니다",
+ "settings.display_skin": "스킨 표시",
+ "settings.display_skin.desc": "참고 플레이어 모델에 사용되는 스킨",
+ "settings.shading": "쉐이딩",
+ "settings.shading.desc": "쉐이딩 허용",
+ "settings.texture_fps": "에니메이션 텍스쳐 FPS",
+ "settings.texture_fps.desc": "에니메이션 텍스쳐의 초당 프레임",
+ "settings.base_grid": "작은 격자",
+ "settings.base_grid.desc": "작은 격자를 표시합니다",
+ "settings.large_grid": "중간 격자",
+ "settings.large_grid.desc": "1블록 단위의 중간 격자를 표시합니다",
+ "settings.full_grid": "큰 격자",
+ "settings.full_grid.desc": "3x3 크기의 큰 격자를 표기합니다",
+ "settings.large_box": "중간 박스",
+ "settings.large_box.desc": "3x3 경계 표시",
+ "settings.display_grid": "보기 모드",
+ "settings.display_grid.desc": "디스플레이 모드에서 격자 표시",
+ "settings.undo_limit": "실행 취소 한계",
+ "settings.undo_limit.desc": "실행 취소 횟수 제한",
+ "settings.local_move": "상대적으로 축 이동",
+ "settings.local_move.desc": "가능한 경우 회전된 요소는 각자의 축으로 이동합니다.",
+ "settings.canvas_unselect": "캔버스 클릭 해제",
+ "settings.canvas_unselect.desc": "바탕 클릭 시 전체 선택 해제",
+ "settings.paint_side_restrict": "브러쉬 옆으로 제한",
+ "settings.paint_side_restrict.desc": "브러쉬가 현재 면에만 칠하도록 제한",
+ "settings.autouv": "자동 UV",
+ "settings.autouv.desc": "자동 UV를 기본으로 허용",
+ "settings.create_rename": "큐브 이름 지정",
+ "settings.create_rename.desc": "요소 또는 그룹을 생성할 때 이름 강조",
+ "settings.edit_size": "격자 크기",
+ "settings.edit_size.desc": "큐브 이동 거리",
+ "settings.shift_size": "Shift 단위",
+ "settings.shift_size.desc": "움직이거나 이동할때 Shift를 누를 때의 단위",
+ "settings.ctrl_size": "Ctrl 단위",
+ "settings.ctrl_size.desc": "움직이거나 이동할때 Ctrl를 누를 때의 단위",
+ "settings.negative_size": "음(-)의 크기",
+ "settings.negative_size.desc": "크기 조정 시 음수 허용",
+ "settings.dialog_unsaved_textures": "저장되지 않은 텍스쳐",
+ "settings.dialog_unsaved_textures.desc": "저장되지 않은 텍스쳐 알림",
+ "settings.dialog_larger_cubes": "모델이 너무 큽니다",
+ "settings.dialog_larger_cubes.desc": "\"모델이 너무 큽니다\" 대화 표시",
+ "settings.dialog_rotation_limit": "회전 제한",
+ "settings.dialog_rotation_limit.desc": "\"회전 제한\" 대화 상자 표시",
+ "settings.minifiedout": "최소화 된 내보내기",
+ "settings.minifiedout.desc": "한줄에 넣기",
+ "settings.export_groups": "그룹 내보내기",
+ "settings.export_groups.desc": "그룹을 블록모델 형식으로 저장",
+ "settings.credit": "크레딧 ",
+ "settings.credit.desc": "내보낸 파일에 크레딧 설명 추가",
+ "settings.default_path": "기본 경로",
+ "settings.default_path.desc": "기본 텍스쳐 폴더",
+ "settings.image_editor": "이미지 편집기",
+ "settings.image_editor.desc": "텍스쳐를 편집할 기본 이미지 편집기",
+ "category.navigate": "찾기",
+ "category.tools": "도구",
+ "category.file": "파일",
+ "category.blockbench": "Blockbench",
+ "category.edit": "편집",
+ "category.transform": "변환",
+ "category.filter": "필터",
+ "category.view": "보기",
+ "category.display": "디스플레이 설정",
+ "category.textures": "텍스쳐",
+ "category.misc": "여러가지",
+ "keybind.preview_select": "선택",
+ "keybind.preview_rotate": "보는 각도 조정",
+ "keybind.preview_drag": "드래그 보기",
+ "keybind.confirm": "확인",
+ "keybind.cancel": "취소",
+ "action.slider_inflate": "부풀리기",
+ "action.slider_inflate.desc": "UV 변화 없이 큐브의 크기를 확장시킵니다.",
+ "action.slider_brush_size": "크기",
+ "action.slider_brush_size.desc": "브러쉬 굵기 (픽셀 단위)",
+ "action.slider_brush_opacity": "투명도",
+ "action.slider_brush_opacity.desc": "브러쉬 투명도 (백분율)",
+ "action.slider_brush_softness": "부드러움",
+ "action.slider_brush_softness.desc": "브러쉬 부드러움 (백분율)",
+ "action.uv_slider_pos_x": "좌우로 이동",
+ "action.uv_slider_pos_x.desc": "선택된 큐브의 UV 수평 이동",
+ "action.uv_slider_pos_y": "상하로 이동",
+ "action.uv_slider_pos_y.desc": "선택된 큐브의 UV 수직 이동",
+ "action.uv_slider_size_x": "수평 크기",
+ "action.uv_slider_size_x.desc": "선택된 큐브의 UV의 수평 크기 조절",
+ "action.uv_slider_size_y": "수직 크기",
+ "action.uv_slider_size_y.desc": "선택된 큐브의 UV의 수직 크기 조절",
+ "action.vertex_snap_mode": "맞춤 모드",
+ "action.vertex_snap_mode.desc": "꼭짓점을 이동하거나 크기 조절 시 선택",
+ "action.move_tool": "이동",
+ "action.move_tool.desc": "선택 및 이동 도구",
+ "action.resize_tool": "크기 조정",
+ "action.resize_tool.desc": "선택 및 크기 조절 도구",
+ "action.brush_tool": "페인트 브러쉬",
+ "action.brush_tool.desc": "표면 또는 UV 에디터의 비트맵 텍스쳐에 칠을 하는 도구",
+ "action.vertex_snap_tool": "꼭짓점 맞춤",
+ "action.vertex_snap_tool.desc": "두 큐브를 꼭짓점을 기준으로 맞춥니다",
+ "action.swap_tools": "교환 도구",
+ "action.swap_tools.desc": "이동 및 크기 조정 도구 간 전환",
+ "action.project_window": "프로젝트...",
+ "action.project_window.desc": "모델의 메타데이터를 편집할 수 있는 프로젝트 창 열기",
+ "action.open_model": "모델 열기",
+ "action.open_model.desc": "내 컴퓨터에서 모델 찾기",
+ "action.add_model": "모델 추가",
+ "action.add_model.desc": "다른 파일에서 모델 추가",
+ "action.extrude_texture": "압출된 텍스쳐",
+ "action.extrude_texture.desc": "텍스쳐를 늘려 모델 생성",
+ "action.export_blockmodel": "Blockmodel로 내보내기",
+ "action.export_blockmodel.desc": "마인크래프트 블록/아이템 모델로 내보내기",
+ "action.export_optifine_part": "OptiFine 부위 내보내기",
+ "action.export_optifine_part.desc": "OptiFine 엔티티 모델 부위 단일 보내기",
+ "action.export_optifine_full": "OptiFine JEM 내보내기",
+ "action.export_optifine_full.desc": "OptiFine 엔티티 모델 전체 내보내기",
+ "action.export_obj": ".OBJ으로 내보내기",
+ "action.export_obj.desc": "렌더링용 Wavefront 객체 내보내기",
+ "action.settings_window": "설정..",
+ "action.settings_window.desc": "Blockbench 설정 대화 상자 열기",
+ "action.plugins_window": "플러그인",
+ "action.plugins_window.desc": "플러그인 스토어 메뉴를 엽니다.",
+ "action.update_window": "업데이트...",
+ "action.update_window.desc": "Blockbench 업데이트 검색",
+ "action.reset_keybindings": "조작키 초기화",
+ "action.reset_keybindings.desc": "설정한 모든 단축키를 기본값으로 되돌립니다.",
+ "action.reset_layout": "레이아웃 초기화",
+ "action.reset_layout.desc": "Blockbench 기본으로 레이아웃 초기화",
+ "action.load_plugin": "파일에서 플러그인 로드",
+ "action.load_plugin.desc": "소스 파일 불러오기로 플러그인 로드",
+ "action.reload_plugins": "플러그인 새로고침",
+ "action.reload_plugins.desc": "모든 개발 플러그인 새로 고침",
+ "action.uv_dialog": "UV 창",
+ "action.uv_dialog.desc": "UV 대화 상자 열기 (모든 면 바둑판 보기)",
+ "action.uv_dialog_full": "전체 보기",
+ "action.uv_dialog_full.desc": "UV 대화 상자 열기 (한 면만 전체 화면 보기)",
+ "action.undo": "되돌리기",
+ "action.undo.desc": "마지막으로 진행한 작업을 취소합니다.",
+ "action.redo": "실행 취소",
+ "action.redo.desc": "마지막 되돌리기 작업을 취소합니다.",
+ "action.copy": "복사",
+ "action.copy.desc": "선택한 범위를 복사합니다",
+ "action.paste": "붙여넣기",
+ "action.paste.desc": "선택한 범위를 붙여넣습니다",
+ "action.cut": "잘라내기",
+ "action.cut.desc": "선택한 범위를 잘라냅니다",
+ "action.add_cube": "큐브 추가",
+ "action.add_cube.desc": "새로운 큐브 하나를 추가합니다.",
+ "action.add_group": "그룹 추가",
+ "action.add_group.desc": "새로운 그룹 또는 뼈대를 추가합니다.",
+ "action.outliner_toggle": "추가 옵션 전환",
+ "action.outliner_toggle.desc": "외곽선 추가 옵션 스위치 전환",
+ "action.duplicate": "복제",
+ "action.duplicate.desc": "선택된 정육면제나 그롭을 복제합니다.",
+ "action.delete": "삭제",
+ "action.delete.desc": "선택된 큐브나 그룹을 삭제합니다.",
+ "action.sort_outliner": "외곽선 정렬",
+ "action.sort_outliner.desc": "알파벳 순으로 외곽선 정렬",
+ "action.select_window": "선택...",
+ "action.select_window.desc": "속성 기반 큐브 선택 및 검색",
+ "action.invert_selection": "선택 반전",
+ "action.invert_selection.desc": "현재 선택된 큐브 반전",
+ "action.select_all": "모두 선택",
+ "action.select_all.desc": "모든 큐브를 선택",
+ "action.collapse_groups": "그룹 닫기",
+ "action.collapse_groups.desc": "모든 그룹 닫기",
+ "action.scale": "크기 조정...",
+ "action.scale.desc": "선택된 큐브 크기",
+ "action.center_all": "모두 중앙으로",
+ "action.center_all.desc": "선택된 큐브를 중앙으로",
+ "action.toggle_visibility": "보이기 전환",
+ "action.toggle_visibility.desc": "선택된 큐브 보이기 전환",
+ "action.toggle_export": "내보내기 전환",
+ "action.toggle_export.desc": "선택된 큐브 내보내기 설정 전환",
+ "action.toggle_autouv": "자동 UV 전환",
+ "action.toggle_autouv.desc": "선택된 큐브 자동 UV 전환",
+ "action.toggle_shade": "쉐이딩 전환",
+ "action.toggle_shade.desc": "선택된 큐브 쉐이딩 전환",
+ "action.rename": "이름 바꾸기",
+ "action.rename.desc": "선택된 큐브 이름 바꾸기",
+ "action.add_display_preset": "새 사전 설정",
+ "action.add_display_preset.desc": "디스플레이 설정의 새 사전 설정을 추가합니다.",
+ "action.fullscreen": "전체 화면",
+ "action.fullscreen.desc": "전체화면 켜기/끄기",
+ "action.zoom_in": "확대",
+ "action.zoom_in.desc": "확대하여 인터페이스 크기 확대",
+ "action.zoom_out": "축소",
+ "action.zoom_out.desc": "축소하여 인터페이스 크기 축소",
+ "action.zoom_reset": "확대/축소 초기화",
+ "action.zoom_reset.desc": "기본의 100% 확대/축소 초기화",
+ "action.reset_interface": "작업 화면 초기화",
+ "action.reset_interface.desc": "GUI 크기 및 위치 초기화",
+ "action.toggle_wireframe": "와어어프레임 보기 전환",
+ "action.toggle_wireframe.desc": "와이어프레임 표시 모드 전환",
+ "action.screenshot_model": "스크린샷 모델",
+ "action.screenshot_model.desc": "현재 각도에서 모델 스크린샷 자르기",
+ "action.screenshot_app": "스크린샷 앱",
+ "action.screenshot_app.desc": "애플리케이션 전체 스크린샷",
+ "action.toggle_quad_view": "쿼드 뷰 전환",
+ "action.toggle_quad_view.desc": "4 viewport 모드 전환",
+ "action.import_texture": "텍스쳐 가져오기",
+ "action.import_texture.desc": "내 파일에서 하나 이상의 텍스쳐 가져오기",
+ "action.create_texture": "텍스쳐 생성",
+ "action.create_texture.desc": "빈 텍스쳐 또는 템플릿 텍스쳐 생성",
+ "action.save_textures": "텍스쳐 저장",
+ "action.save_textures.desc": "저장하지 않은 모든 텍스쳐 저장",
+ "action.animated_textures": "텍스쳐 애니메이션 재생",
+ "action.animated_textures.desc": "텍스쳐 미리보기의 애니메이션을 재생 또는 정지",
+ "action.origin_to_geometry": "중앙 피벗",
+ "action.origin_to_geometry.desc": "피벗 점을 선택 중심으로 설정",
+ "action.rescale_toggle": "재조정 전환",
+ "action.rescale_toggle.desc": "현재 기울기를 기준으로 큐브 크기 조정",
+ "action.bone_reset_toggle": "뼈대 초기화",
+ "action.bone_reset_toggle.desc": "뼈대가 부모 모델에서 큐브를 표시하지 않도록 중지",
+ "action.reload": "Blockbench 새로 고침",
+ "action.reload.desc": "Blockbench 새로 고침. 저장되지 않은 변경 사항은 복구할 수 없습니다",
+ "menu.file": "파일",
+ "menu.edit": "편집",
+ "menu.transform": "변환",
+ "menu.filter": "필터",
+ "menu.display": "디스플레이",
+ "menu.view": "보기",
+ "menu.file.new": "새 모델",
+ "menu.file.recent": "최근 작업물",
+ "menu.file.import": "가져오기",
+ "menu.file.export": "내보내기",
+ "menu.transform.rotate": "회전",
+ "menu.transform.flip": "뒤집기",
+ "menu.transform.center": "중앙으로",
+ "menu.transform.properties": "속성",
+ "menu.display.preset": "사전 설정 적용",
+ "menu.display.preset_all": "사전 설정 전체 적용",
+ "menu.display.remove_preset": "사전 설정 제거",
+ "menu.view.zoom": "확대하기",
+ "menu.view.background": "배경화면",
+ "menu.view.screenshot": "스크린샷",
+ "menu.cube.color": "지정 색",
+ "menu.cube.texture": "텍스쳐",
+ "menu.cube.texture.transparent": "투명",
+ "menu.cube.texture.blank": "비어있음",
+ "menu.group.sort": "분류",
+ "menu.group.resolve": "분해",
+ "menu.texture.face": "한 면에 적용",
+ "menu.texture.cube": "모든 면에 적용",
+ "menu.texture.file": "파일",
+ "menu.texture.refresh": "텍스쳐 새로고침",
+ "menu.texture.change": "파일 바꾸기",
+ "menu.texture.folder": "폴더에서 열기",
+ "menu.texture.edit": "편집",
+ "menu.texture.export": "다른 이름으로 저장",
+ "menu.texture.save": "저장",
+ "menu.texture.properties": "환경 설정...",
+ "menu.preview.background": "배경",
+ "menu.preview.background.load": "불러오기",
+ "menu.preview.background.position": "위치",
+ "menu.preview.background.lock": "카메라 잠금",
+ "menu.preview.screenshot": "스크린샷",
+ "menu.preview.perspective": "원근감",
+ "menu.preview.perspective.normal": "일반",
+ "menu.preview.quadview": "사면 보기",
+ "menu.preview.stop_drag": "배경 위치 중지",
+ "menu.uv.mapping": "UV 매핑",
+ "menu.uv.mapping.export": "내보내기",
+ "menu.uv.mapping.rotation": "회전",
+ "menu.uv.mapping.mirror_x": "X축 반전",
+ "menu.uv.mapping.mirror_y": "Y축 반전",
+ "menu.uv.texture": "텍스쳐",
+ "cube.color.light_blue": "하늘색",
+ "cube.color.yellow": "노랑색",
+ "cube.color.orange": "주황색",
+ "cube.color.red": "빨강색",
+ "cube.color.purple": "보라색",
+ "cube.color.blue": "파랑색",
+ "cube.color.green": "초록색",
+ "cube.color.lime": "연두색",
+ "switches.visibility": "가시성",
+ "switches.export": "내보내기",
+ "switches.shading": "그림자",
+ "switches.autouv": "자동 UV",
+ "panel.uv": "UV",
+ "panel.display": "디스플레이",
+ "panel.textures": "텍스쳐",
+ "panel.outliner": "외곽선",
+ "uv_editor.title": "UV 편집기",
+ "uv_editor.all_faces": "전체",
+ "uv_editor.no_faces": "없음",
+ "face.north": "북쪽",
+ "face.south": "남쪽",
+ "face.west": "서쪽",
+ "face.east": "동쪽",
+ "face.up": "위",
+ "face.down": "아래",
+ "direction.north": "북쪽",
+ "direction.south": "동쪽",
+ "direction.west": "서쪽",
+ "direction.east": "동쪽",
+ "direction.top": "위",
+ "direction.bottom": "아래",
+ "display.slot.third_right": "3인칭 우측",
+ "display.slot.third_left": "3인칭 좌측",
+ "display.slot.first_right": "1인칭 우측",
+ "display.slot.first_left": "1인칭 좌측",
+ "display.slot.head": "머리",
+ "display.slot.ground": "땅",
+ "display.slot.frame": "틀",
+ "display.slot.gui": "GUI",
+ "display.rotation": "회전",
+ "display.translation": "번역",
+ "display.scale": "규모",
+ "display.slot": "슬롯",
+ "display.reference": "참고 모델",
+ "display.reference.player": "플레이어",
+ "display.reference.zombie": "좀비",
+ "display.reference.armor_stand": "갑옷 거치대",
+ "display.reference.baby_zombie": "아기 좀비",
+ "display.reference.armor_stand_small": "작은 갑옷 거치대",
+ "display.reference.monitor": "보통",
+ "display.reference.bow": "굽히기",
+ "display.reference.block": "블록",
+ "display.reference.frame": "아이템 액자",
+ "display.reference.inventory_nine": "3x3",
+ "display.reference.inventory_full": "인벤토리",
+ "display.reference.hud": "HUD",
+ "display.preset.blank_name": "이름을 입력해주세요.",
+ "display.preset.item": "기본 아이템",
+ "display.preset.block": "기본 블록",
+ "display.preset.handheld": "기본 무기",
+ "display.preset.rod": "기본 막대",
+ "dialog.continue": "계속",
+ "message.square_textures": "텍스쳐는 정사각형이어야 합니다",
+ "message.unsaved_texture.title": "저장되지 않은 텍스쳐",
+ "message.unsaved_texture.message": "이 텍스쳐에 대한 변경 사항은 전부 지워질 것입니다. 계속하시겠습니까?",
+ "dialog.update.no_connection": "인터넷 연결 없음",
+ "dialog.update.latest": "최신 버전",
+ "dialog.update.installed": "설치된 버전",
+ "dialog.update.update": "업데이트",
+ "action.vertex_snap_mode.move": "이동",
+ "action.vertex_snap_mode.scale": "크기",
+ "action.open_model_folder": "모델 폴더 열기",
+ "action.open_model_folder.desc": "모델이 포함된 폴더 열기",
+ "action.change_textures_folder": "텍스쳐 위치 변경",
+ "action.change_textures_folder.desc": "텍스쳐가 저장된 폴더 바꾸기",
+ "menu.texture.particle": "파티클로 사용",
+ "message.update_notification.title": "업데이트가 가능합니다.",
+ "message.update_notification.message": "Blockbench의 새로운 버전 \"%0\"을 사용할 수 있습니다. 지금 설치하시겠습니까?",
+ "message.update_notification.install": "설치",
+ "message.update_notification.later": "나중에",
+ "message.untextured": "이 표면은 텍스쳐가 없습니다",
+ "dialog.toolbar_edit.title": "툴바 사용자 설정",
+ "keybindings.reset": "초기화",
+ "keybindings.clear": "없음",
+ "action.cube_counter": "현재 큐브 수 및 기타 통계량 표시",
+ "action.uv_rotation": "UV 회전",
+ "action.uv_rotation.desc": "UV 표면의 각도",
+ "action.uv_grid": "UV 그리드",
+ "action.uv_grid.desc": "UV 선택기가 스냅하는 그리드의 해상도",
+ "action.uv_grid.auto": "자동",
+ "action.uv_maximize": "UV 최대화",
+ "action.uv_maximize.desc": "이 표면의 UV를 전체 텍스처로 설정",
+ "action.uv_auto": "자동 UV",
+ "action.uv_auto.desc": "이 표면의 UV 크기를 표면의 실제 크기로 설정",
+ "action.uv_rel_auto": "상대적 자동 UV",
+ "action.uv_rel_auto.desc": "이 표면의 UV를 실제 표면의 위치 및 크기로 설정",
+ "action.uv_mirror_x": "X로 UV 좌우반전",
+ "action.uv_mirror_x.desc": "X축에서 이 표면의 UV를 좌우반전",
+ "action.uv_mirror_y": "Y로 UV 좌우반전",
+ "action.uv_mirror_y.desc": "Y축에서 이 표면의 UV를 좌우반전",
+ "action.uv_transparent": "투명한 표면",
+ "action.uv_transparent.desc": "현재 표면 투명하게 만들기",
+ "action.uv_reset": "표면 초기화",
+ "action.uv_reset.desc": "현재 표면 초기화",
+ "action.cullface": "후면 제거",
+ "action.cullface.desc": "선택한 모델의 측면이 덮인 경우 이 면에 대한 렌더링을 비활성화함",
+ "action.auto_cullface": "자동 후면 제거",
+ "action.auto_cullface.desc": "이 표면의 후면 제거를 자체로 설정",
+ "action.face_tint": "옅은 색",
+ "action.face_tint.desc": "현재 표면에 대한 색조 옵션을 사용 가능으로 설정",
+ "menu.toolbar.edit": "사용자 정의",
+ "menu.toolbar.reset": "초기화",
+ "uv_editor.rotated": "기울여짐",
+ "uv_editor.auto_cull": "수동 후면 제거",
+ "uv_editor.copied": "표면 복사됨",
+ "uv_editor.pasted": "표면 붙여넣어짐",
+ "uv_editor.copied_x": "%0 표면 복사됨",
+ "uv_editor.reset": "표면 초기화",
+ "uv_editor.maximized": "최대화됨",
+ "uv_editor.autouv": "자동 크기",
+ "uv_editor.mirrored": "좌우반전됨",
+ "uv_editor.to_all": "모든 표면에 적용",
+ "uv_editor.transparent": "투명하게 만들기",
+ "uv_editor.cullface_on": "후면 제거 키기",
+ "uv_editor.cullface_off": "후면 제거 끄기",
+ "uv_editor.tint_on": "옅은 색 키기",
+ "uv_editor.tint_off": "옅은 색 끄기",
+ "action.uv_apply_all": "모든 표면에 적용",
+ "action.uv_apply_all.desc": "현재 표면의 설정을 모든 면에 적용",
+ "message.image_editor_missing.title": "기본 이미지 에디터",
+ "message.image_editor_missing.message": "이미지 편집기의 실행 파일을 선택",
+ "message.image_editor_missing.detail": "Blockbench는 컴퓨터에서 이미지 편집기를 찾을 수 없습니다. 원하는 이미지 편집기의 실행 파일을 선택하십시오",
+ "action.update_autouv": "자동 UV 업데이트",
+ "action.update_autouv.desc": "선택한 큐브의 자동 UV 매핑 업데이트",
+ "category.uv": "UV",
+ "status_bar.saved": "모델 저장됨",
+ "status_bar.unsaved": "저장되지 않은 변경이 있습니다.",
+ "action.move_up": "위로",
+ "action.move_up.desc": "선택한 큐브를 현재 카메라 각도에 대해 위로 이동",
+ "action.move_down": "아래로",
+ "action.move_down.desc": "선택한 큐브를 현재 카메라 각도에 대해 아래로 이동",
+ "action.move_left": "옆으로",
+ "action.move_left.desc": "선택한 큐브를 현재 카메라 각도에 대해 왼쪽으로 이동",
+ "action.move_right": "오른쪽으로",
+ "action.move_right.desc": "선택한 큐브를 현재 카메라 각도에 대해 오른쪽으로 이동",
+ "action.move_forth": "앞으로",
+ "action.move_forth.desc": "선택한 큐브를 현재 카메라 각도에 대해 앞으로 이동",
+ "action.move_back": "뒤로",
+ "action.move_back.desc": "선택한 큐브를 현재 카메라 각도에 대해 뒤로 이동",
+ "layout.color.wireframe": "와이어프레임",
+ "layout.color.wireframe.desc": "와이어프레임 선 보기",
+ "action.add_animation": "애니메이션 추가",
+ "action.add_animation.desc": "빈 애니메이션 생성",
+ "action.load_animation_file": "애니메이션 가져오기",
+ "action.load_animation_file.desc": "애니메이션 파일 가져오기",
+ "action.play_animation": "애니메이션 재생",
+ "action.play_animation.desc": "애니메이션 미리 보기",
+ "action.export_animation_file": "애니메이션 내보내기",
+ "action.export_animation_file.desc": "현재 애니메이션이 있는 json 파일 내보내기",
+ "action.slider_keyframe_time": "타임코드",
+ "action.slider_keyframe_time.desc": "선택한 키프레임의 타임코드 변경",
+ "timeline.rotation": "회전",
+ "timeline.position": "위치",
+ "timeline.scale": "크기",
+ "menu.timeline.add": "키프레임 추가",
+ "menu.keyframe.quaternion": "쿼터니언",
+ "panel.animations": "애니메이션",
+ "panel.keyframe": "키프레임",
+ "panel.keyframe.type": "키프레임 (%0)",
+ "generic.delete": "삭제",
+ "generic.rename": "이름 바꾸기",
+ "message.animation_update_var": "적응 애니메이션 변수",
+ "message.no_animation_selected": "이 작업을 하려면 애니메이션을 선택해야합니다",
+ "message.no_bone_selected": "이 작업을 하려면 뼈대를 선택해야합니다",
+ "message.duplicate_groups.title": "뼈대 이름 복제",
+ "message.duplicate_groups.message": "이 뼈대의 이름은 여러 개의 뼈대에 존재합니다. 이것은 문제를 일으킬 수 있습니다",
+ "action.select_all_keyframes": "모든 키프레임 선택",
+ "action.select_all_keyframes.desc": "현재 뼈대의 모든 키프레임 선택",
+ "action.delete_keyframes": "키프레임 삭제",
+ "action.delete_keyframes.desc": "선택된 키프레임 삭제",
+ "menu.animation": "애니메이션",
+ "menu.animation.loop": "루프",
+ "menu.animation.override": "재지정하",
+ "menu.animation.anim_time_update": "변수 업데이트",
+ "message.display_skin_model.title": "스킨 모델",
+ "message.display_skin_model.message": "스킨의 모델 종류를 고르세요.",
+ "message.display_skin_model.classic": "일반",
+ "message.display_skin_model.slim": "슬림",
+ "message.bone_material": "뼈대 물질 바꾸기",
+ "action.slider_animation_length": "애니메이션 길이",
+ "action.slider_animation_length.desc": "선택된 애니메이션 길이 바꾸기",
+ "panel.variable_placeholders": "변수 플레이스홀더",
+ "panel.variable_placeholders.info": "이름=값을 통해 미리 볼 변수 나열",
+ "status_bar.vertex_distance": "거리: %0",
+ "dialog.create_gif.title": "녹화된 GIF",
+ "dialog.create_gif.length": "길이",
+ "dialog.create_gif.fps": "프레임",
+ "dialog.create_gif.compression": "수량 압축",
+ "dialog.create_gif.play": "애니메이션 시작",
+ "category.animation": "애니메이션",
+ "action.record_model_gif": "GIF로 녹화",
+ "action.record_model_gif.desc": "현재 각도에서 모델의 애니메이션 GIF 녹화",
+ "display.mirror": "좌우반전",
+ "data.separator": "분리기",
+ "message.set_background_position.title": "배경 위치",
+ "menu.preview.background.set_position": "위치 설정",
+ "dialog.toolbar_edit.hidden": "숨김",
+ "action.export_class_entity": "Java 엔티티 내보내기",
+ "action.export_class_entity.desc": "Java classs로 엔티티 모델 내보내기",
+ "settings.seethrough_outline": "외곽선 X-Ray",
+ "settings.seethrough_outline.desc": "객체 뒤로 외곽선 표시",
+ "mode.edit": "편집",
+ "mode.paint": "칠하기",
+ "mode.display": "디스플레이",
+ "mode.animate": "애니메이션",
+ "status_bar.recording_gif": "GIF 녹화 중",
+ "status_bar.processing_gif": "GIF 처리 중",
+ "settings.backup_retain": "복사본 보존 기간",
+ "settings.backup_retain.desc": "오래된 복사본 최대 보존 기간 설정",
+ "action.rotate_tool": "회전",
+ "action.rotate_tool.desc": "선택한 개체를 회전시킵니다.",
+ "action.fill_tool": "채우기",
+ "action.fill_tool.desc": "한 면을 선택한 색상으로 채웁니다.",
+ "action.eraser": "지우개",
+ "action.eraser.desc": "투명하게 지우는 지우개",
+ "action.color_picker": "색 추출",
+ "action.color_picker.desc": "색 지정 도구",
+ "action.open_backup_folder": "복사본 폴더 열기",
+ "action.open_backup_folder.desc": "Blockbench 복사본 폴더 열기",
+ "switches.mirror": "UV 반전",
+ "language_name": "한국어",
+ "message.plugin_reload": "%0 개의 플러그인을 새로고침 했습니다.",
+ "settings.brightness": "밝기",
+ "settings.brightness.desc": "프리뷰 밝기. 기본값 50",
+ "menu.preview.perspective.reset": "카메라 초기화",
+ "action.fill_mode": "채우기 모드",
+ "action.fill_mode.face": "면",
+ "action.fill_mode.color": "색상",
+ "action.fill_mode.cube": "큐브",
+ "action.toggle_mirror_uv": "UV 반전",
+ "action.toggle_mirror_uv.desc": "선택한 큐브의 X축에서 UV 미러링 토글",
+ "action.toggle_uv_overlay": "UV 오버레이 토글",
+ "action.toggle_uv_overlay.desc": "활성화되면 텍스처 위에 있는 모든 UV 매핑 오버레이 표시",
+ "menu.texture.blank": "텍스쳐가 없는 표면에 적용",
+ "dialog.scale.select_overflow": "오버플로우 선택",
+ "dialog.create_texture.compress": "템플릿 압축",
+ "action.action_control": "행동 제어",
+ "action.action_control.desc": "사용 가능한 모든 행동을 검색하고 실행",
+ "keybindings.recording": "키바인딩 녹화중",
+ "keybindings.press": "키 또는 키 조합을 누르거나 화면의 아무 곳이나 클릭하여 키 바인딩을 기록하세요",
+ "action.pivot_tool": "피벗 도구",
+ "action.pivot_tool.desc": "큐브 및 뼈대의 피벗 점을 변경하는 도구",
+ "action.slider_animation_speed": "재생 속도",
+ "action.slider_animation_speed.desc": "타임라인의 재생 속도 (퍼센트)",
+ "action.previous_keyframe": "이전 키프레임",
+ "action.previous_keyframe.desc": "이전 키프레임으로 건너뛰기",
+ "action.next_keyframe": "디음 키프레임",
+ "action.next_keyframe.desc": "다음 키프레임으로 건너뛰기",
+ "message.outdated_client.title": "업데이트 되지 않은 클라이언트",
+ "message.outdated_client.message": "이 작업을 하려면 Blockbench를 최신버전으로 업데이트해야합니다",
+ "action.export_asset_archive": "압축파일 다운로드",
+ "action.export_asset_archive.desc": "모델과 모든 텍스처가 포함된 압축 파일을 다운로드",
+ "action.upload_sketchfab": "Sketchfab 업로드",
+ "message.sketchfab.name_or_token": "Sketchfab 토큰과 이름 입력",
+ "dialog.sketchfab_uploader.title": "Sketchfab 모델 업로드",
+ "dialog.sketchfab_uploader.token": "API 토큰",
+ "dialog.sketchfab_uploader.about_token": "토큰은 Blockbench를 Sketchfab 계정에 연결하는 데 사용됩니다. %0에서 찾을 수 있습니다.",
+ "dialog.sketchfab_uploader.name": "모델 이름",
+ "dialog.sketchfab_uploader.description": "설명",
+ "dialog.sketchfab_uploader.tags": "태그",
+ "settings.sketchfab_token": "Sketchfab 토큰",
+ "settings.sketchfab_token.desc": "Blockbench에 Sketchfab 계정을 업로드할 수 있는 권한을 부여하는 토큰",
+ "panel.color": "색상",
+ "data.origin": "피벗",
+ "message.sketchfab.success": "모델을 성공적으로 업로드하였습니다",
+ "message.sketchfab.error": "Sketchfab에 업로드를 실패하였습니디",
+ "settings.outliner_colors": "외곽선 색상",
+ "settings.outliner_colors.desc": "외곽선에 있는 큐브의 색상 표시",
+ "action.upload_sketchfab.desc": "Sketchfab에 자신의 모델 업로드",
+ "action.element_colors": "큐브 색상",
+ "action.element_colors.desc": "외곽선에 있는 큐브의 색상 표시",
+ "texture.error.file": "파일이 존재하지 않습니다",
+ "texture.error.invalid": "잘못된 파일",
+ "texture.error.ratio": "잘못된 비율",
+ "texture.error.parent": "상위의 모델에서 제공하는 텍스쳐 파일",
+ "message.recover_backup.title": "모델 복구",
+ "message.recover_backup.message": "Blockbench가 저장되지 않고 종료되었습니다. 모델을 복구하시겠습니까?",
+ "message.install_plugin": "%0 플러그인 설치중",
+ "message.invalid_session.title": "잘못된 세션 토큰",
+ "message.invalid_session.message": "The session you are trying to join has expired or the token provided is invalid.",
+ "dialog.create_texture.power": "Power-of-2 Size",
+ "dialog.create_gif.turn": "Turntable Speed",
+ "action.edit_session": "세션 수정",
+ "action.edit_session.desc": "Connect to an edit session to collaborate with other users",
+ "action.reset_keyframe": "키프레임 초기화",
+ "action.reset_keyframe.desc": "Reset all values of the selected keyframes",
+ "dialog.edit_session.title": "세션 수정",
+ "edit_session.username": "닉네임",
+ "edit_session.token": "토큰",
+ "edit_session.about": "Edit Sessions can be used to collaborate on models across the internet. Create a session and copy the token and send it to friends, who can then use it to join.",
+ "edit_session.join": "세션 들어가기",
+ "edit_session.create": "세션 만들기",
+ "edit_session.quit": "세션 나가기",
+ "edit_session.joined": "%0 (이)가 세션에 들어왔습니다.",
+ "edit_session.left": "&0 이(가) 세션에서 나갔습니다.",
+ "edit_session.quit_session": "현재 세션 나가기",
+ "edit_session.status": "상태",
+ "edit_session.hosting": "호스팅",
+ "edit_session.connected": "Connected to a session",
+ "dialog.sketchfab_uploader.private": "Private (Pro)",
+ "dialog.sketchfab_uploader.password": "Password (Pro)",
+ "action.toggle_chat": "채팅 보기",
+ "action.toggle_chat.desc": "Toggle the visibility of the chat history",
+ "action.uv_select_all": "모두 선택",
+ "action.uv_select_all.desc": "Select all faces in the UV dialog",
+ "panel.chat": "채팅",
+ "edit_session.welcome": "Welcome to this session by %0",
+ "dialog.yes": "예",
+ "dialog.no": "아니오",
+ "generic.remove": "삭제",
+ "generic.download": "다운로드",
+ "generic.search": "검색",
+ "dates.today": "오늘",
+ "dates.yesterday": "어제",
+ "dates.this_week": "이번 주",
+ "dates.weeks_ago": "%0 주 지남",
+ "mode.start": "시작",
+ "mode.start.new": "새로운",
+ "mode.start.recent": "최근",
+ "format.free": "자유 모델",
+ "format.free.desc": "Unity등을 위한 제한 없는 모델 형식입니다.",
+ "format.java_block": "자바 블록/아이템",
+ "format.java_block.desc": "자바 에디션을 위한 모델 형식입니다. 크기와 회전에 제한이 있습니다.",
+ "format.bedrock": "베드락 모델",
+ "format.bedrock.desc": "베드락 에디션을 위한 모델 형식 입니다.",
+ "format.bedrock_old": "Bedrock Legacy Model",
+ "format.bedrock_old.desc": "Pre-1.12 Bedrock Edition entity model",
+ "format.modded_entity": "수정된 엔티티",
+ "format.modded_entity.desc": "Entity model for mods. Can be exported as .java class files.",
+ "format.optifine_entity": "옵티파인 엔티티",
+ "format.optifine_entity.desc": "옵티파인을 위한 커스텀 엔티티 모델 형식입니다.",
+ "keys.mouse": "Mouse Button %0",
+ "message.cleared_blank_faces.title": "비어있는 표면",
+ "message.cleared_blank_faces.message": "Blockbench has found %0 cubes without any texture. Do you want to remove those elements?",
+ "message.wireframe.enabled": "Wireframe view enabled",
+ "message.wireframe.disabled": "Wireframe view disabled",
+ "dialog.project.box_uv": "상자 UV",
+ "dialog.convert_project.title": "Convert Project",
+ "dialog.convert_project.text": "Are you sure you want to convert this project? You cannot undo this step.",
+ "dialog.create_texture.double_use": "Keep Multi Texture Occupancy",
+ "dialog.model_stats.title": "모델 상태",
+ "dialog.model_stats.cubes": "큐브들",
+ "dialog.model_stats.locators": "로케이터",
+ "dialog.model_stats.groups": "그룹들",
+ "dialog.model_stats.vertices": "Vertices",
+ "dialog.model_stats.faces": "표면들",
+ "settings.username": "닉네임",
+ "settings.username.desc": "수정된 세션을 위한 닉네임",
+ "settings.painting_grid": "그리드 칠하기",
+ "settings.painting_grid.desc": "Show grid on textured cubes in paint mode",
+ "action.slider_brush_min_opacity": "최소 불투명도",
+ "action.slider_brush_min_opacity.desc": "거친 브러쉬의 최소 불투명도 (퍼센트)",
+ "action.convert_project": "프로젝트 변환",
+ "action.convert_project.desc": "현재 프로젝트를 다른 파일 형식으로 변환합니다.",
+ "action.close_project": "프로젝트 닫기",
+ "action.close_project.desc": "현재 열려있는 프로젝트를 닫습니다.",
+ "action.export_bedrock": "베드락 지오메트리 내보내기",
+ "action.export_bedrock.desc": "베드락 에디션 지오메트리 파일로 모델을 내보내기",
+ "action.save_project": "프로젝트 저장",
+ "action.save_project.desc": "현재 프로젝트를 파일로 저장합니다.",
+ "action.save_project_as": "다른 이름으로 프로젝트 저장",
+ "action.save_project_as.desc": "새로운 곳에 현재 프로젝트를 저장합니다.",
+ "action.export_over": "모델 저장",
+ "action.export_over.desc": "파일을 덮어쓰고 모델, 텍스처 및 애니메이션 저장",
+ "action.add_locator": "로케이터 추가",
+ "action.add_locator.desc": "Adds a new locator to control positions of particles, leashes etc",
+ "action.sidebar_left": "텍스쳐와 UV",
+ "action.sidebar_left.desc": "UV, 텍스쳐 작업 화면 열기",
+ "action.sidebar_right": "Elements",
+ "action.sidebar_right.desc": "Open the interface to edit elements",
+ "action.uv_turn_mapping": "Turn Mapping",
+ "action.uv_turn_mapping.desc": "Turn the UV mapping around 90 degrees",
+ "action.remove_blank_faces": "Remove Blank Faces",
+ "action.remove_blank_faces.desc": "텍스쳐가 없는 모든 면 제거",
+ "menu.uv.select": "큐브 선택",
+ "web.download_app": "앱 다운로드",
+ "uv_editor.turned": "Turned Mapping",
+ "display.reference.crossbow": "Crossbow",
+ "dialog.settings.search_results": "검색 결과",
+ "settings.animation_snap": "애니메이션 스냅",
+ "settings.animation_snap.desc": "Snap interval for keyframes in the animation timeline in steps per second",
+ "action.import_optifine_part": "옵티파인 부분 불러오기",
+ "action.import_optifine_part.desc": "옵티파인을 위한 엔티티 부분 불러오기",
+ "data.locator": "로케이터",
+ "mode.start.no_recents": "No recently opened models",
+ "panel.element": "Element",
+ "panel.element.position": "위치",
+ "panel.element.size": "크기",
+ "panel.element.origin": "Pivot Point",
+ "panel.element.rotation": "각도",
+ "message.canvas_limit_error.title": "Canvas Limit Error",
+ "message.canvas_limit_error.message": "The action could not be performed correctly because the format limits the canvas to 48 units. Shift the pivot point to prevent this.",
+ "data.effect": "효과",
+ "generic.name": "이름",
+ "settings.recent_projects": "Recent Model Cap",
+ "settings.recent_projects.desc": "Maximum number of recent models to remember",
+ "settings.volume": "음량",
+ "settings.volume.desc": "Volume control for sound effects in animations",
+ "action.change_keyframe_file": "파일 선택",
+ "action.change_keyframe_file.desc": "Select an audio file to preview a sound effect.",
+ "action.clear_timeline": "타임라인 초기화",
+ "action.clear_timeline.desc": "Clear all unselected bones from the timeline",
+ "action.select_effect_animator": "에니매이션 효과",
+ "action.select_effect_animator.desc": "Opens timeline to add sound and particle effects",
+ "action.timeline_focus": "채널",
+ "action.timeline_focus.desc": "타임라인에 표시할 애니메이션 채널을 선택하십시오",
+ "action.timeline_focus.all": "전체",
+ "timeline.particle": "입자",
+ "timeline.sound": "소리",
+ "timeline.effects": "효과",
+ "data.format": "형식",
+ "format.optifine_part": "옵티파인 부분",
+ "format.optifine_part.desc": "옵티파인 엔티티 모델을 위한 JPM 부분",
+ "action.reverse_keyframes": "키프레임 반전",
+ "action.reverse_keyframes.desc": "선택된 키프레임들의 순서를 반전시킵니다",
+ "generic.help": "도움말",
+ "message.removed_faces": "%0개의 면이 제거되었습니다",
+ "dialog.sketchfab_uploader.draft": "초안",
+ "action.slider_pos": "%0축 이동",
+ "action.slider_pos.desc": "%0축을 기준으로 큐브 이동",
+ "action.slider_size": "%0축 크기",
+ "action.slider_size.desc": "%0축을 기준으로 큐브 크기 조정",
+ "action.slider_rotation": "%0 회전",
+ "action.slider_rotation.desc": "%0축을 기준으로 큐브 회전",
+ "action.slider_origin": "%0축 회전 중심",
+ "action.slider_origin.desc": "회전 중심을 %0축을 기준으로 이동시킵니다",
+ "action.rotate_cw": "+90도만큼 %0 회전",
+ "action.rotate_cw.desc": "%0축을 기준으로 큐브 90° 회전",
+ "action.rotate_ccw": "-90도만큼 %0 회전",
+ "action.rotate_ccw.desc": "Rotate the selected cubes -90° on the %0 axis",
+ "action.flip": "%0 뒤집기",
+ "action.flip.desc": "%0 축을 중심으로 선택된 큐브 뒤집기",
+ "action.center": "%0축 중심",
+ "action.center.desc": "선택된 큐브를 %0 축의 중심으로 이동",
+ "action.bring_up_all_animations": "모든 애니메이션 가져오기",
+ "panel.bone": "뼈대",
+ "data.color": "색상",
+ "generic.export": "내보내기",
+ "generic.none": "없음",
+ "status_bar.recording": "타임랩스 기록",
+ "message.add_to_palette": "색상 견본에 추가",
+ "message.size_modifiers": "Hold down Ctrl or Shift to transform in smaller increments.",
+ "message.timelapse_start": "타임랩스 시작됨",
+ "message.timelapse_stop": "타임랩스 멈춤",
+ "message.import_palette.replace_palette": "오래된 색상 견본 바꾸기",
+ "message.import_palette.threshold": "Merge Threshold",
+ "dialog.timelapse.interval": "간격 (초)",
+ "dialog.timelapse.source": "출처",
+ "dialog.timelapse.source.interface": "인터페이스",
+ "dialog.timelapse.source.locked": "각도 고정",
+ "dialog.timelapse.destination": "Destination Folder",
+ "layout.color.checkerboard": "체커보드",
+ "layout.color.checkerboard.desc": "Background of canvas and UV editor",
+ "layout.font.code": "폰트 코드",
+ "layout.css": "커스텀 CSS",
+ "settings.category.paint": "칠하기",
+ "settings.deactivate_size_limit": "Deactivate Size Limit",
+ "settings.deactivate_size_limit.desc": "Deactivate the size limit for specific model formats. WARNING: This can cause invalid models.",
+ "settings.brush_opacity_modifier": "불투명 브러쉬 수정",
+ "settings.brush_opacity_modifier.desc": "Modify the brush opacity when using a stylus",
+ "settings.brush_size_modifier": "브러쉬 크기 조정",
+ "settings.brush_size_modifier.desc": "Modify the brush size when using a stylus",
+ "settings.brush_modifier.pressure": "압력",
+ "settings.brush_modifier.tilt": "기울기",
+ "category.color": "색상",
+ "action.import_theme": "테마 불러오기",
+ "action.export_theme": "테마 내보내기",
+ "action.export_theme.desc": "Create a theme file based on the current settings",
+ "action.reset_theme": "테마 초기화",
+ "action.reset_theme.desc": "Reset to the default Blockbench theme",
+ "action.slider_color_h": "합성 색",
+ "action.slider_color_s": "Saturation",
+ "action.slider_color_v": "값",
+ "action.add_to_palette": "색상 견본에 추가",
+ "action.add_to_palette.desc": "Add the selected color to the color palette",
+ "action.import_palette": "색상 견본 불러오기",
+ "action.import_palette.desc": ".bbpalette 색상 견본 파일 불러오기",
+ "action.export_palette": "색상 견본 내보내기",
+ "action.export_palette.desc": ".bbpalette 파일로 색상 견본 내보내기",
+ "action.generate_palette": "색상 견본 생성",
+ "action.generate_palette.desc": "텍스쳐로부터 색상 견본 생성",
+ "action.sort_palette": "Sort Palette",
+ "action.sort_palette.desc": "Sort all colors on the palette by color and brightness",
+ "action.timelapse": "타임랩스",
+ "action.timelapse.desc": "Record a timelapse of your modeling process",
+ "action.add_keyframe": "키프레임 추가",
+ "action.add_keyframe.desc": "Automatically add a keyframe. Press shift to force default values",
+ "action.bring_up_all_animations.desc": "Brings all modified animators into the timeline",
+ "timeline.timeline": "Instructions",
+ "menu.palette.load": "색상 견본 불러오기",
+ "menu.palette.load.default": "기본값",
+ "panel.color.picker": "색 고르기",
+ "panel.color.palette": "색상 견본",
+ "generic.import": "불러오기",
+ "settings.brush_modifier.none": "없음",
+ "action.export_entity": "베드락 엔티티 내보내기",
+ "action.export_entity.desc": "Add the current model as an entity to a mobs.json file",
+ "settings.highlight_cubes": "Highlight Cubes",
+ "settings.highlight_cubes.desc": "Highlight cubes when you hover over them or select them",
+ "action.add_marker": "마커 설정",
+ "action.add_marker.desc": "Set a timeline marker",
+ "timeline.pre_effect_script": "스크립트",
+ "format.skin": "스킨",
+ "format.skin.desc": "플레이어, 엔티티 스킨 수정",
+ "message.sketchfab.setup_guide": "Want to learn how to set up models in Sketchfab? Read %0",
+ "dialog.skin.title": "스킨 생성",
+ "dialog.skin.model": "스킨",
+ "dialog.skin.texture": "텍스쳐 (선택 사항)",
+ "action.toggle_skin_layer": "스킨 레이어 스위치",
+ "action.toggle_skin_layer.desc": "Toggle the hat and clothing layer of the skin model",
+ "action.gui_light": "GUI Light",
+ "action.gui_light.desc": "Select the way the item is lit in the inventory",
+ "action.gui_light.side": "옆면 빛",
+ "action.gui_light.front": "앞면 빛",
+ "action.move_keyframe_back": "키 프레임을 뒤로 옮기기",
+ "action.move_keyframe_forth": "Move Keyframes Forth",
+ "menu.help": "도움",
+ "menu.help.discord": "디스코드 서버",
+ "menu.help.report_issue": "버그 신고",
+ "menu.help.plugin_documentation": "플러그인 API 문서",
+ "menu.help.search_action": "Search and Run Action",
+ "menu.help.donate": "기부",
+ "menu.help.about": "더보기",
+ "menu.preview.background.clipboard": "클립보드에서 불러오기",
+ "dialog.ignore": "무시",
+ "generic.unset": "Unset",
+ "message.invalid_builtin_parent.title": "Invalid Built-in Parent",
+ "message.invalid_builtin_parent.message": "The link to the invalid parent model '%0' was removed in order to export a valid model.",
+ "dialog.resize_texture.fill": "채우기",
+ "dialog.resize_texture.fill.transparent": "투명",
+ "dialog.resize_texture.fill.color": "색상",
+ "dialog.resize_texture.fill.repeat": "Repeat",
+ "dialog.resize_texture.fill.stretch": "늘리기",
+ "dialog.scale.element_pivot": "Element Pivot",
+ "dialog.scale.selection_center": "Selection Center",
+ "dialog.create_gif.length_mode": "Length Mode",
+ "dialog.create_gif.length_mode.seconds": "Seconds",
+ "dialog.create_gif.length_mode.frames": "프레임",
+ "dialog.create_gif.length_mode.animation": "Animation Length",
+ "dialog.create_gif.length_mode.turntable": "Turntable Rotation",
+ "dialog.save_angle.projection": "Projection",
+ "dialog.save_angle.projection.perspective": "Perspective",
+ "dialog.save_angle.projection.orthographic": "Orthographic",
+ "dialog.sketchfab_uploader.animations": "애니메이션",
+ "dialog.settings.theme": "테마",
+ "settings.category.interface": "인터페이스",
+ "settings.preview_checkerboard": "체커보드 프리뷰",
+ "settings.preview_checkerboard.desc": "미리보기 뒤에 있는 체크보드 배경 전환",
+ "settings.uv_checkerboard": "UV 에디터 체커보드",
+ "settings.uv_checkerboard.desc": "UV 에디터 뒤에 있는 체크보드 배경 전환",
+ "category.paint": "칠하기",
+ "action.fill_mode.color_connected": "연결된 색상들",
+ "action.draw_shape_type": "모양 타입",
+ "action.draw_shape_type.rectangle": "직사각형",
+ "action.draw_shape_type.rectangle_h": "직사각형 (할로우)",
+ "action.draw_shape_type.ellipse": "타원형",
+ "action.draw_shape_type.ellipse_h": "타원형 (할로우)",
+ "action.draw_shape_type.line": "선",
+ "action.mirror_painting": "좌우반전 칠하기",
+ "action.mirror_painting.description": "페인트 스트로크를 모델의 다른 쪽으로 반전",
+ "action.lock_alpha": "알파 채널 잠그기",
+ "action.lock_alpha.description": "모든 픽셀의 투명성을 잠그기",
+ "action.draw_shape_tool": "모양 그리기",
+ "action.draw_shape_tool.desc": "텍스쳐에 간단한 모양을 그리는 도구",
+ "action.copy_paste_tool": "붙여넣기 도구 복사",
+ "action.copy_paste_tool.desc": "텍스쳐의 선택된 부분을 복사 및 붙여넣기 하기 위한 도구",
+ "action.export_gltf": "glTF로 내보내기",
+ "action.export_gltf.desc": "다른 3D 응용 프로그램에서 사용할 glTF 파일로 모델 및 애니메이션 내보내기",
+ "action.transform_space": "공간 바꾸기",
+ "action.transform_space.desc": "요소 및 뼈대의 기본 변환 공간",
+ "action.transform_space.global": "글로벌",
+ "action.transform_space.bone": "뼈대",
+ "action.transform_space.local": "로컬",
+ "action.toggle_camera_projection": "카메라 투사 토글",
+ "action.toggle_camera_projection.desc": "원근법과 직교법 사이에 카메라 투영 전환",
+ "action.load_camera_angle": "카메라 각도: %0",
+ "action.load_camera_angle.desc": "카메라 각도 불러오기 '%0'",
+ "action.slider_face_tint": "옅은 색 색인",
+ "action.slider_face_tint.desc": "현재 면의 색인 지수를 설정합니다. -1은 설정 해제를 의미합니다.",
+ "menu.help.quickstart": "빠른시작 마법사",
+ "menu.help.developer": "개발진",
+ "menu.help.developer.dev_tools": "개발 도구 열기",
+ "menu.help.developer.reset_storage": "공장 초기화",
+ "menu.help.developer.reset_storage.confirm": "Blockbench를 공장초기화 하시겠습니까? 모든 커스텀 설정과 키 바인딩, 설치된 플러그인들이 지워질것입니다",
+ "menu.help.developer.cache_reload": "캐쉬 리로드",
+ "menu.texture.resize": "크기 조정...",
+ "menu.preview.orthographic": "정사영",
+ "menu.preview.save_angle": "각도 저장...",
+ "menu.preview.angle": "각도",
+ "menu.preview.angle.initial": "첫 각도",
+ "menu.preview.angle.load": "불러오기",
+ "menu.preview.maximize": "최대치",
+ "panel.color.both": "둘 다",
+ "uv_editor.copy_selection": "선택 항목 복사",
+ "uv_editor.paste_selection": "선택 항목 붙여넣기",
+ "uv_editor.copy_paste_tool.place": "놓다",
+ "uv_editor.copy_paste_tool.cut": "자르기",
+ "uv_editor.copy_paste_tool.mirror_x": "X축으로 좌우반전",
+ "uv_editor.copy_paste_tool.mirror_y": "Y축으로 좌우반전",
+ "uv_editor.copy_paste_tool.rotate": "90도 회전",
+ "dialog.project.modded_entity_version": "Export Version",
+ "dialog.save_angle.position": "Camera Position",
+ "dialog.save_angle.target": "Focal Point",
+ "dialog.skin.pose": "Pose",
+ "layout.color.frame": "Window Frame",
+ "layout.color.frame.desc": "Border and title bar of the window",
+ "settings.large_grid_size": "Block Grid Size",
+ "settings.large_grid_size.desc": "Size of the block grid",
+ "action.load_plugin_from_url": "Load Plugin from URL",
+ "action.load_plugin_from_url.desc": "Load a plugin from a server by specifying the URL",
+ "action.cube_counter.desc": "Displays the current number of cubes and other statistics",
+ "action.unlock_everything": "Unlock Everything",
+ "action.unlock_everything.desc": "Unlock all groups and elements in the outliner.",
+ "action.load_palette": "Load Palette",
+ "action.load_palette.desc": "Load one of the built-in palette presets",
+ "action.toggle_locked": "Toggle Lock",
+ "action.toggle_locked.desc": "Toggle whether the selected elements are locked",
+ "action.apply_display_preset": "Apply Preset",
+ "action.apply_display_preset.desc": "Apply a default or custom display setting preset",
+ "action.apply_display_preset.here": "Apply To This Slot",
+ "action.apply_display_preset.everywhere": "Apply To All Slots",
+ "action.resolve_keyframe_expressions": "Resolve Keyframe",
+ "action.resolve_keyframe_expressions.desc": "Resolves the math expressions of the selected keyframes",
+ "action.fold_all_animations": "Fold All Animators",
+ "action.timeline_focus.used": "In Use",
+ "menu.palette.load.empty": "Blank",
+ "switches.lock": "Lock",
+ "camera_angle.isometric_right": "Isometric Right",
+ "camera_angle.isometric_left": "Isometric Left"
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..0fbdb5ca1
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1941 @@
+{
+ "name": "Blockbench",
+ "version": "3.5.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "7zip-bin": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz",
+ "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==",
+ "dev": true
+ },
+ "@develar/schema-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.1.0.tgz",
+ "integrity": "sha512-qjCqB4ctMig9Gz5bd6lkdFr3bO6arOdQqptdBSpF1ZpCnjofieCciEzkoS9ujY9cMGyllYSCSmBJ3x9OKHXzoA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "@electron/get": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.10.0.tgz",
+ "integrity": "sha512-hlueNXU51c3CwQjBw/i5fwt+VfQgSQVUTdicpCHkhEjNZaa4CXJ5W1GaxSwtLE2dvRmAHjpIjUMHTqJ53uojfg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "env-paths": "^2.2.0",
+ "fs-extra": "^8.1.0",
+ "global-agent": "^2.0.2",
+ "global-tunnel-ng": "^2.7.1",
+ "got": "^9.6.0",
+ "progress": "^2.0.3",
+ "sanitize-filename": "^1.6.2",
+ "sumchecker": "^3.0.1"
+ }
+ },
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
+ "@types/debug": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz",
+ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "12.12.28",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.28.tgz",
+ "integrity": "sha512-g73GJYJDXgf0jqg+P9S8h2acWbDXNkoCX8DLtJVu7Fkn788pzQ/oJsrdJz/2JejRf/SjfZaAhsw+3nd1D5EWGg==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "6.12.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+ "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
+ "dev": true
+ },
+ "ansi-align": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
+ "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "app-builder-bin": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.4.3.tgz",
+ "integrity": "sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg==",
+ "dev": true
+ },
+ "app-builder-lib": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-21.2.0.tgz",
+ "integrity": "sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A==",
+ "dev": true,
+ "requires": {
+ "7zip-bin": "~5.0.3",
+ "@develar/schema-utils": "~2.1.0",
+ "async-exit-hook": "^2.0.1",
+ "bluebird-lst": "^1.0.9",
+ "builder-util": "21.2.0",
+ "builder-util-runtime": "8.3.0",
+ "chromium-pickle-js": "^0.2.0",
+ "debug": "^4.1.1",
+ "ejs": "^2.6.2",
+ "electron-publish": "21.2.0",
+ "fs-extra": "^8.1.0",
+ "hosted-git-info": "^2.7.1",
+ "is-ci": "^2.0.0",
+ "isbinaryfile": "^4.0.2",
+ "js-yaml": "^3.13.1",
+ "lazy-val": "^1.0.4",
+ "minimatch": "^3.0.4",
+ "normalize-package-data": "^2.5.0",
+ "read-config-file": "5.0.0",
+ "sanitize-filename": "^1.6.2",
+ "semver": "^6.3.0",
+ "temp-file": "^3.3.4"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ }
+ }
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-exit-hook": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
+ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "bluebird-lst": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz",
+ "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.5"
+ }
+ },
+ "boolean": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz",
+ "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==",
+ "dev": true,
+ "optional": true
+ },
+ "boxen": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz",
+ "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==",
+ "dev": true,
+ "requires": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^2.4.2",
+ "cli-boxes": "^2.2.0",
+ "string-width": "^3.0.0",
+ "term-size": "^1.2.0",
+ "type-fest": "^0.3.0",
+ "widest-line": "^2.0.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "dev": true
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "builder-util": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-21.2.0.tgz",
+ "integrity": "sha512-Nd6CUb6YgDY8EXAXEIegx+1kzKqyFQ5ZM5BoYkeunAlwz/zDJoH1UCyULjoS5wQe5czNClFQy07zz2bzYD0Z4A==",
+ "dev": true,
+ "requires": {
+ "7zip-bin": "~5.0.3",
+ "@types/debug": "^4.1.4",
+ "app-builder-bin": "3.4.3",
+ "bluebird-lst": "^1.0.9",
+ "builder-util-runtime": "8.3.0",
+ "chalk": "^2.4.2",
+ "debug": "^4.1.1",
+ "fs-extra": "^8.1.0",
+ "is-ci": "^2.0.0",
+ "js-yaml": "^3.13.1",
+ "source-map-support": "^0.5.13",
+ "stat-mode": "^0.3.0",
+ "temp-file": "^3.3.4"
+ }
+ },
+ "builder-util-runtime": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.3.0.tgz",
+ "integrity": "sha512-CSOdsYqf4RXIHh1HANPbrZHlZ9JQJXSuDDloblZPcWQVN62inyYoTQuSmY3KrgefME2Sv3Kn2MxHvbGQHRf8Iw==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "sax": "^1.2.4"
+ }
+ },
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+ "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true
+ }
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ }
+ }
+ },
+ "chromium-pickle-js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
+ "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "cli-boxes": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz",
+ "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "config-chain": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
+ "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "configstore": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz",
+ "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "unique-string": "^1.0.0",
+ "write-file-atomic": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ }
+ },
+ "core-js": {
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
+ "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
+ "dev": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "detect-node": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+ "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+ "dev": true,
+ "optional": true
+ },
+ "dmg-builder": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-21.2.0.tgz",
+ "integrity": "sha512-9cJEclnGy7EyKFCoHDYDf54pub/t92CQapyiUxU0w9Bj2vUvfoDagP1PMiX4XD5rPp96141h9A+QN0OB4VgvQg==",
+ "dev": true,
+ "requires": {
+ "app-builder-lib": "~21.2.0",
+ "bluebird-lst": "^1.0.9",
+ "builder-util": "~21.2.0",
+ "fs-extra": "^8.1.0",
+ "iconv-lite": "^0.5.0",
+ "js-yaml": "^3.13.1",
+ "sanitize-filename": "^1.6.2"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "dotenv": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
+ "dev": true
+ },
+ "dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+ "dev": true
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
+ "ejs": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
+ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
+ "dev": true
+ },
+ "electron": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.1.tgz",
+ "integrity": "sha512-+1PispFqjyKj3VeOPbEKEl6LYxPW41OxHgh9CGN8KeGygsKDHSZuuG9rYc+b9NeeaAl+gnV9VO2JOe7BIzXyOg==",
+ "dev": true,
+ "requires": {
+ "@electron/get": "^1.0.1",
+ "@types/node": "^12.0.12",
+ "extract-zip": "^1.0.3"
+ }
+ },
+ "electron-builder": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-21.2.0.tgz",
+ "integrity": "sha512-x8EXrqFbAb2L3N22YlGar3dGh8vwptbB3ovo3OF6K7NTpcsmM2zEoJv7GhFyX73rNzSG2HaWpXwGAtOp2JWiEw==",
+ "dev": true,
+ "requires": {
+ "app-builder-lib": "21.2.0",
+ "bluebird-lst": "^1.0.9",
+ "builder-util": "21.2.0",
+ "builder-util-runtime": "8.3.0",
+ "chalk": "^2.4.2",
+ "dmg-builder": "21.2.0",
+ "fs-extra": "^8.1.0",
+ "is-ci": "^2.0.0",
+ "lazy-val": "^1.0.4",
+ "read-config-file": "5.0.0",
+ "sanitize-filename": "^1.6.2",
+ "update-notifier": "^3.0.1",
+ "yargs": "^13.3.0"
+ }
+ },
+ "electron-publish": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-21.2.0.tgz",
+ "integrity": "sha512-mWavuoWJe87iaeKd0I24dNWIaR+0yRzshjNVqGyK019H766fsPWl3caQJnVKFaEyrZRP397v4JZVG0e7s16AxA==",
+ "dev": true,
+ "requires": {
+ "bluebird-lst": "^1.0.9",
+ "builder-util": "~21.2.0",
+ "builder-util-runtime": "8.3.0",
+ "chalk": "^2.4.2",
+ "fs-extra": "^8.1.0",
+ "lazy-val": "^1.0.4",
+ "mime": "^2.4.4"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true,
+ "optional": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "env-paths": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz",
+ "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==",
+ "dev": true
+ },
+ "es6-error": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true,
+ "optional": true
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true,
+ "optional": true
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ }
+ }
+ },
+ "extract-zip": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "1.6.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1",
+ "yauzl": "2.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "global-agent": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz",
+ "integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boolean": "^3.0.0",
+ "core-js": "^3.6.4",
+ "es6-error": "^4.1.1",
+ "matcher": "^2.1.0",
+ "roarr": "^2.15.2",
+ "semver": "^7.1.2",
+ "serialize-error": "^5.0.0"
+ }
+ },
+ "global-dirs": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.4"
+ }
+ },
+ "global-tunnel-ng": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
+ "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "encodeurl": "^1.0.2",
+ "lodash": "^4.17.10",
+ "npm-conf": "^1.1.3",
+ "tunnel": "^0.0.6"
+ }
+ },
+ "globalthis": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz",
+ "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-yarn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
+ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "dev": true
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz",
+ "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dev": true,
+ "requires": {
+ "ci-info": "^2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-installed-globally": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+ "dev": true,
+ "requires": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-npm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz",
+ "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==",
+ "dev": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-yarn-global": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isbinaryfile": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz",
+ "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true,
+ "optional": true
+ },
+ "json5": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+ "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ }
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "latest-version": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
+ "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "dev": true,
+ "requires": {
+ "package-json": "^6.3.0"
+ }
+ },
+ "lazy-val": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz",
+ "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.14",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
+ "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==",
+ "dev": true
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "matcher": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz",
+ "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+ "dev": true
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true
+ },
+ "npm-conf": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
+ "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "config-chain": "^1.1.11",
+ "pify": "^3.0.0"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "package-json": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
+ "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "dev": true,
+ "requires": {
+ "got": "^9.6.0",
+ "registry-auth-token": "^4.0.0",
+ "registry-url": "^5.0.0",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "dev": true,
+ "optional": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ }
+ }
+ },
+ "read-config-file": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-5.0.0.tgz",
+ "integrity": "sha512-jIKUu+C84bfnKxyJ5j30CxCqgXWYjZLXuVE/NYlMEpeni+dhESgAeZOZd0JZbg1xTkMmnCdxksDoarkOyfEsOg==",
+ "dev": true,
+ "requires": {
+ "dotenv": "^8.0.0",
+ "dotenv-expand": "^5.1.0",
+ "fs-extra": "^8.1.0",
+ "js-yaml": "^3.13.1",
+ "json5": "^2.1.0",
+ "lazy-val": "^1.0.4"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "registry-auth-token": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz",
+ "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==",
+ "dev": true,
+ "requires": {
+ "rc": "^1.2.8"
+ }
+ },
+ "registry-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
+ "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "dev": true,
+ "requires": {
+ "rc": "^1.2.8"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.16.1.tgz",
+ "integrity": "sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "roarr": {
+ "version": "2.15.2",
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.2.tgz",
+ "integrity": "sha512-jmaDhK9CO4YbQAV8zzCnq9vjAqeO489MS5ehZ+rXmFiPFFE6B+S9KYO6prjmLJ5A0zY3QxVlQdrIya7E/azz/Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boolean": "^3.0.0",
+ "detect-node": "^2.0.4",
+ "globalthis": "^1.0.1",
+ "json-stringify-safe": "^5.0.1",
+ "semver-compare": "^1.0.0",
+ "sprintf-js": "^1.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sanitize-filename": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
+ "dev": true,
+ "requires": {
+ "truncate-utf8-bytes": "^1.0.0"
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "dev": true,
+ "optional": true
+ },
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true,
+ "optional": true
+ },
+ "semver-diff": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
+ "dev": true,
+ "requires": {
+ "semver": "^5.0.3"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "serialize-error": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz",
+ "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "type-fest": "^0.8.0"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.17",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.17.tgz",
+ "integrity": "sha512-bwdKOBZ5L0gFRh4KOxNap/J/MpvX9Yxsq9lFDx65s3o7F/NiHy7JRaGIS8MwW6tZPAq9UXE207Il0cfcb5yu/Q==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+ "dev": true,
+ "optional": true
+ },
+ "stat-mode": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.3.0.tgz",
+ "integrity": "sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "sumchecker": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
+ "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "temp-file": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz",
+ "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==",
+ "dev": true,
+ "requires": {
+ "async-exit-hook": "^2.0.1",
+ "fs-extra": "^8.1.0"
+ }
+ },
+ "term-size": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
+ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
+ "dev": true,
+ "requires": {
+ "execa": "^0.7.0"
+ }
+ },
+ "to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true
+ },
+ "truncate-utf8-bytes": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
+ "dev": true,
+ "requires": {
+ "utf8-byte-length": "^1.0.1"
+ }
+ },
+ "tunnel": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
+ "dev": true,
+ "optional": true
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "optional": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
+ "dev": true,
+ "requires": {
+ "crypto-random-string": "^1.0.0"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "update-notifier": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz",
+ "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==",
+ "dev": true,
+ "requires": {
+ "boxen": "^3.0.0",
+ "chalk": "^2.0.1",
+ "configstore": "^4.0.0",
+ "has-yarn": "^2.1.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^2.0.0",
+ "is-installed-globally": "^0.1.0",
+ "is-npm": "^3.0.0",
+ "is-yarn-global": "^0.3.0",
+ "latest-version": "^5.0.0",
+ "semver-diff": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ }
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "utf8-byte-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
+ "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "widest-line": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
+ "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "xdg-basedir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+ "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "dev": true,
+ "requires": {
+ "fd-slicer": "~1.0.1"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index c50aeacb7..faddf2740 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "Blockbench",
"description": "Model editing and animation software",
- "version": "3.5.0",
+ "version": "3.5.1",
"license": "MIT",
"author": {
"name": "JannisX11",