diff --git a/src/game/lib/color/main_color.js b/src/game/lib/color/main_color.js index 67b978d..2b59c5e 100644 --- a/src/game/lib/color/main_color.js +++ b/src/game/lib/color/main_color.js @@ -7,8 +7,8 @@ function MainColor() { // CHOCO MainColor.CHOCO_STRING = "#805A42"; -MainColor.DARKER_CHOCO_STRING = "#604031"; -MainColor.DARK_CHOCO_STRING = "#402D21"; +MainColor.DARK_CHOCO_STRING = "#604031"; +MainColor.DARKER_CHOCO_STRING = "#402D21"; MainColor.LIGHT_CHOCO_STRING = "#BF8763"; MainColor.LIGHTER_CHOCO_STRING = "#E6A277"; diff --git a/src/game/lib/flat_button/app_group_tab.js b/src/game/lib/flat_button/app_group_tab.js index a243d67..4449599 100644 --- a/src/game/lib/flat_button/app_group_tab.js +++ b/src/game/lib/flat_button/app_group_tab.js @@ -90,11 +90,11 @@ AppGroupTab.loadResources = function() { AppGroupTab.BUTTON_COLOR_OUT_HEX = MainColor.CHOCO_HEX; -AppGroupTab.BUTTON_COLOR_OVER_HEX = MainColor.DARKER_CHOCO_HEX; +AppGroupTab.BUTTON_COLOR_OVER_HEX = MainColor.DARK_CHOCO_HEX; AppGroupTab.BUTTON_COLOR_DOWN_HEX = MainColor.LIGHTER_CHOCO_HEX; AppGroupTab.BUTTON_COLOR_DISABLED_HEX = MainColor.CHOCO_HEX; -AppGroupTab.ACTIVE_LINE_COLOR_OUT_HEX = MainColor.DARK_CHOCO_HEX; +AppGroupTab.ACTIVE_LINE_COLOR_OUT_HEX = MainColor.DARKER_CHOCO_HEX; AppGroupTab.ACTIVE_LINE_COLOR_OVER_HEX = MainColor.CHOCO_HEX; AppGroupTab.ACTIVE_LINE_COLOR_DOWN_HEX = MainColor.LIGHTER_CHOCO_HEX; AppGroupTab.ACTIVE_LINE_COLOR_DISABLED_HEX = MainColor.BLACK_HEX; @@ -105,6 +105,6 @@ AppGroupTab.ICON_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_HEX; AppGroupTab.ICON_COLOR_DISABLED_HEX = MainColor.LIGHT_CHOCO_HEX; AppGroupTab.TEXT_COLOR_OUT_STRING = MainColor.BLACK_STRING; -AppGroupTab.TEXT_COLOR_OVER_STRING = MainColor.DARK_CHOCO_STRING; +AppGroupTab.TEXT_COLOR_OVER_STRING = MainColor.DARKER_CHOCO_STRING; AppGroupTab.TEXT_COLOR_DOWN_STRING = MainColor.CHOCO_STRING; -AppGroupTab.TEXT_COLOR_DISABLED_STRING = MainColor.DARKER_CHOCO_STRING; \ No newline at end of file +AppGroupTab.TEXT_COLOR_DISABLED_STRING = MainColor.DARK_CHOCO_STRING; \ No newline at end of file diff --git a/src/game/lib/flat_button/language_tab.js b/src/game/lib/flat_button/language_tab.js index ce7533c..e8710a7 100644 --- a/src/game/lib/flat_button/language_tab.js +++ b/src/game/lib/flat_button/language_tab.js @@ -93,22 +93,22 @@ LanguageTab.prototype.transformActiveLine = function() { } -LanguageTab.BUTTON_COLOR_OUT_HEX = MainColor.DARK_CHOCO_HEX; -LanguageTab.BUTTON_COLOR_OVER_HEX = MainColor.DARKER_CHOCO_HEX; +LanguageTab.BUTTON_COLOR_OUT_HEX = MainColor.DARKER_CHOCO_HEX; +LanguageTab.BUTTON_COLOR_OVER_HEX = MainColor.DARK_CHOCO_HEX; LanguageTab.BUTTON_COLOR_DOWN_HEX = MainColor.LIGHTER_CHOCO_HEX; LanguageTab.BUTTON_COLOR_DISABLED_HEX = MainColor.BLACK_HEX; LanguageTab.ACTIVE_LINE_COLOR_OUT_HEX = MainColor.LIGHTER_CHOCO_HEX; -LanguageTab.ACTIVE_LINE_COLOR_OVER_HEX = MainColor.DARK_CHOCO_HEX; +LanguageTab.ACTIVE_LINE_COLOR_OVER_HEX = MainColor.DARKER_CHOCO_HEX; LanguageTab.ACTIVE_LINE_COLOR_DOWN_HEX = MainColor.CHOCO_HEX; LanguageTab.ACTIVE_LINE_COLOR_DISABLED_HEX = MainColor.BLACK_HEX; LanguageTab.ICON_COLOR_OUT_HEX = MainColor.LIGHT_CHOCO_HEX; LanguageTab.ICON_COLOR_OVER_HEX = MainColor.CHOCO_HEX; LanguageTab.ICON_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_HEX; -LanguageTab.ICON_COLOR_DISABLED_HEX = MainColor.DARK_CHOCO_HEX; +LanguageTab.ICON_COLOR_DISABLED_HEX = MainColor.DARKER_CHOCO_HEX; LanguageTab.TEXT_COLOR_OUT_STRING = MainColor.WHITE_STRING; -LanguageTab.TEXT_COLOR_OVER_STRING = MainColor.DARK_CHOCO_STRING; +LanguageTab.TEXT_COLOR_OVER_STRING = MainColor.LIGHTER_CHOCO_STRING; LanguageTab.TEXT_COLOR_DOWN_STRING = MainColor.CHOCO_STRING; -LanguageTab.TEXT_COLOR_DISABLED_STRING = MainColor.DARK_CHOCO_STRING; \ No newline at end of file +LanguageTab.TEXT_COLOR_DISABLED_STRING = MainColor.DARKER_CHOCO_STRING; \ No newline at end of file diff --git a/src/game/lib/flat_button/play_app_button.js b/src/game/lib/flat_button/play_app_button.js index fff33e2..6eaa367 100644 --- a/src/game/lib/flat_button/play_app_button.js +++ b/src/game/lib/flat_button/play_app_button.js @@ -33,10 +33,10 @@ function PlayAppButton(x, y) { PlayAppButton.ICON_COLOR_DISABLED_HEX ); setting.setTextColor( - PlayAppButton.TEXT_COLOR_OUT_HEX, - PlayAppButton.TEXT_COLOR_OVER_HEX, - PlayAppButton.TEXT_COLOR_DOWN_HEX, - PlayAppButton.TEXT_COLOR_DISABLED_HEX + PlayAppButton.TEXT_COLOR_OUT_STRING, + PlayAppButton.TEXT_COLOR_OVER_STRING, + PlayAppButton.TEXT_COLOR_DOWN_STRING, + PlayAppButton.TEXT_COLOR_DISABLED_STRING ); BasicButton.call(this, setting, this.clickEvent); @@ -180,8 +180,8 @@ PlayAppButton.STROKE_COLOR_OVER_HEX = MainColor.LIGHT_CHOCO_HEX; PlayAppButton.STROKE_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_HEX; PlayAppButton.STROKE_COLOR_DISABLED_HEX = MainColor.LIGHT_CHOCO_HEX; -PlayAppButton.BUTTON_COLOR_OUT_HEX = MainColor.DARK_CHOCO_HEX; -PlayAppButton.BUTTON_COLOR_OVER_HEX = MainColor.DARKER_CHOCO_HEX; +PlayAppButton.BUTTON_COLOR_OUT_HEX = MainColor.DARKER_CHOCO_HEX; +PlayAppButton.BUTTON_COLOR_OVER_HEX = MainColor.DARK_CHOCO_HEX; PlayAppButton.BUTTON_COLOR_DOWN_HEX = MainColor.LIGHTER_CHOCO_HEX; PlayAppButton.BUTTON_COLOR_DISABLED_HEX = MainColor.LIGHT_GRAY_HEX; @@ -190,7 +190,7 @@ PlayAppButton.ICON_COLOR_OVER_HEX = MainColor.WHITE_HEX; PlayAppButton.ICON_COLOR_DOWN_HEX = MainColor.WHITE_HEX; PlayAppButton.ICON_COLOR_DISABLED_HEX = MainColor.LIGHT_GRAY_HEX; -PlayAppButton.TEXT_COLOR_OUT_HEX = MainColor.LINEN_STRING; -PlayAppButton.TEXT_COLOR_OVER_HEX = MainColor.DARK_CHOCO_STRING; -PlayAppButton.TEXT_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_STRING; -PlayAppButton.TEXT_COLOR_DISABLED_HEX = MainColor.DARK_GRAY_STRING; \ No newline at end of file +PlayAppButton.TEXT_COLOR_OUT_STRING = MainColor.LINEN_STRING; +PlayAppButton.TEXT_COLOR_OVER_STRING = MainColor.LINEN_STRING; +PlayAppButton.TEXT_COLOR_DOWN_STRING = MainColor.LIGHT_CHOCO_STRING; +PlayAppButton.TEXT_COLOR_DISABLED_STRING = MainColor.DARKER_GRAY_STRING; \ No newline at end of file diff --git a/src/game/lib/flat_button/typing_app_button.js b/src/game/lib/flat_button/typing_app_button.js index 2a301ec..f02abfa 100644 --- a/src/game/lib/flat_button/typing_app_button.js +++ b/src/game/lib/flat_button/typing_app_button.js @@ -34,10 +34,10 @@ function TypingAppButton(x, y) { TypingAppButton.BUTTON_COLOR_DISABLED_HEX ); setting.setTextColor( - TypingAppButton.TEXT_COLOR_OUT_HEX, - TypingAppButton.TEXT_COLOR_OVER_HEX, - TypingAppButton.TEXT_COLOR_DOWN_HEX, - TypingAppButton.TEXT_COLOR_DISABLED_HEX + TypingAppButton.TEXT_COLOR_OUT_STRING, + TypingAppButton.TEXT_COLOR_OVER_STRING, + TypingAppButton.TEXT_COLOR_DOWN_STRING, + TypingAppButton.TEXT_COLOR_DISABLED_STRING ); BasicButton.call(this, setting, this.clickEvent); @@ -221,23 +221,6 @@ TypingAppButton.prototype.clickEvent = function() { location.href = '../../web/client/start.html'; } -/* -TypingAppButton.prototype.onClick = function() { - sessionStorageManager.setPlayingAppID(TypingAppButton.TYPING_APP_ID); - sessionStorageManager.setPlayingAppName(TypingAppButton.TYPING_APP_NAME); - sessionStorageManager.setPlayingAppKoreanName(TypingAppButton.TYPING_APP_KOREAN_NAME); - sessionStorageManager.setWritingID(this.writingData.writingID); - // location.href = '../../web/client/typing_exam.html'; - location.href = '../../web/client/start.html'; - // printSessionStorage(); -} - - -TypingAppButton.TYPING_APP_ID = 200; -TypingAppButton.TYPING_APP_NAME = "typing_exam"; -TypingAppButton.TYPING_APP_KOREAN_NAME = "타자검정"; -*/ - TypingAppButton.loadResources = function() { game.load.spritesheet('keyboards', '../../../resources/image/ui/keyboard/keyboards.png', 100, 100); @@ -254,12 +237,12 @@ TypingAppButton.STROKE_COLOR_OVER_HEX = MainColor.LIGHT_CHOCO_HEX; TypingAppButton.STROKE_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_HEX; TypingAppButton.STROKE_COLOR_DISABLED_HEX = MainColor.LIGHT_CHOCO_HEX; -TypingAppButton.BUTTON_COLOR_OUT_HEX = MainColor.DARK_CHOCO_HEX; -TypingAppButton.BUTTON_COLOR_OVER_HEX = MainColor.DARKER_CHOCO_HEX; +TypingAppButton.BUTTON_COLOR_OUT_HEX = MainColor.DARKER_CHOCO_HEX; +TypingAppButton.BUTTON_COLOR_OVER_HEX = MainColor.DARK_CHOCO_HEX; TypingAppButton.BUTTON_COLOR_DOWN_HEX = MainColor.LIGHTER_CHOCO_HEX; TypingAppButton.BUTTON_COLOR_DISABLED_HEX = MainColor.LIGHT_GRAY_HEX; -TypingAppButton.TEXT_COLOR_OUT_HEX = MainColor.LINEN_STRING; -TypingAppButton.TEXT_COLOR_OVER_HEX = MainColor.DARK_CHOCO_STRING; -TypingAppButton.TEXT_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_STRING; -TypingAppButton.TEXT_COLOR_DISABLED_HEX = MainColor.DARK_GRAY_STRING; \ No newline at end of file +TypingAppButton.TEXT_COLOR_OUT_STRING = MainColor.LINEN_STRING; +TypingAppButton.TEXT_COLOR_OVER_STRING = MainColor.LINEN_STRING; +TypingAppButton.TEXT_COLOR_DOWN_STRING = MainColor.LIGHT_CHOCO_STRING; +TypingAppButton.TEXT_COLOR_DISABLED_STRING = MainColor.DARKER_GRAY_STRING; \ No newline at end of file diff --git a/src/game/lib/flat_button/typing_exam_button.js b/src/game/lib/flat_button/typing_exam_button.js index 560643f..55a1ef2 100644 --- a/src/game/lib/flat_button/typing_exam_button.js +++ b/src/game/lib/flat_button/typing_exam_button.js @@ -35,10 +35,10 @@ function TypingExamButton(x, y) { TypingExamButton.BUTTON_COLOR_DISABLED_HEX ); setting.setTextColor( - TypingExamButton.TEXT_COLOR_OUT_HEX, - TypingExamButton.TEXT_COLOR_OVER_HEX, - TypingExamButton.TEXT_COLOR_DOWN_HEX, - TypingExamButton.TEXT_COLOR_DISABLED_HEX + TypingExamButton.TEXT_COLOR_OUT_STRING, + TypingExamButton.TEXT_COLOR_OVER_STRING, + TypingExamButton.TEXT_COLOR_DOWN_STRING, + TypingExamButton.TEXT_COLOR_DISABLED_STRING ); BasicButton.call(this, setting, this.clickEvent); @@ -195,12 +195,12 @@ TypingExamButton.STROKE_COLOR_OVER_HEX = MainColor.LIGHT_CHOCO_HEX; TypingExamButton.STROKE_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_HEX; TypingExamButton.STROKE_COLOR_DISABLED_HEX = MainColor.LIGHT_CHOCO_HEX; -TypingExamButton.BUTTON_COLOR_OUT_HEX = MainColor.DARK_CHOCO_HEX; -TypingExamButton.BUTTON_COLOR_OVER_HEX = MainColor.DARKER_CHOCO_HEX; +TypingExamButton.BUTTON_COLOR_OUT_HEX = MainColor.DARKER_CHOCO_HEX; +TypingExamButton.BUTTON_COLOR_OVER_HEX = MainColor.DARK_CHOCO_HEX; TypingExamButton.BUTTON_COLOR_DOWN_HEX = MainColor.LIGHTER_CHOCO_HEX; TypingExamButton.BUTTON_COLOR_DISABLED_HEX = MainColor.LIGHT_GRAY_HEX; -TypingExamButton.TEXT_COLOR_OUT_HEX = MainColor.LINEN_STRING; -TypingExamButton.TEXT_COLOR_OVER_HEX = MainColor.DARK_CHOCO_STRING; -TypingExamButton.TEXT_COLOR_DOWN_HEX = MainColor.LIGHT_CHOCO_STRING; -TypingExamButton.TEXT_COLOR_DISABLED_HEX = MainColor.DARK_GRAY_STRING; \ No newline at end of file +TypingExamButton.TEXT_COLOR_OUT_STRING = MainColor.LINEN_STRING; +TypingExamButton.TEXT_COLOR_OVER_STRING = MainColor.LINEN_STRING; +TypingExamButton.TEXT_COLOR_DOWN_STRING = MainColor.LIGHT_CHOCO_STRING; +TypingExamButton.TEXT_COLOR_DISABLED_STRING = MainColor.DARKER_GRAY_STRING; \ No newline at end of file diff --git a/src/game/typing/examination/game.js b/src/game/typing/examination/game.js index 047156b..fa90ae6 100644 --- a/src/game/typing/examination/game.js +++ b/src/game/typing/examination/game.js @@ -27,7 +27,7 @@ TypingExamination.prototype.create = function() { (function() { this.timeOver(); }).bind(this) ); - game.stage.backgroundColor = TypingExamination.STAGE_BACKGROUND_COLOR; + game.stage.backgroundColor = TypingExamination.COLOR_STAGE_BACKGROUND_STRING; // keyboard shortcut - useless. this.keyboard is chargning for ESC event this.keyboardShortcut = new KeyboardShortcut(); @@ -85,7 +85,7 @@ TypingExamination.prototype.makeDefaultText = function(x, y) { TypingExamination.prototype.makeUnderlineText = function(x, y) { var CONTENT_TEXT_WIDTH = 800; - var CONTENT_UNDERLINE_OFFSET_Y = 17; + var CONTENT_UNDERLINE_OFFSET_Y = 20; // 17; var graphics = game.add.graphics(0, 0); graphics.lineStyle(1, 0x303030, 1); @@ -126,9 +126,9 @@ TypingExamination.prototype.makeInputlineText = function(x, y) { this.textCorrectText = this.makeDefaultText(x, y); this.textCorrectText.fontSize = BIG_FONT_SIZE; this.textCorrectText.style.fill = TypingExamination.COLOR_CORRECT_INPUT_STRING; + this.textCorrectText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) this.textCorrectText.style.backgroundColor = TypingExamination.COLOR_CORRECT_INPUT_BACKGROUND_STRING; - var graphics = game.add.graphics(0, 0); graphics.lineStyle(1, 0x303030, 1); graphics.moveTo(x, y + CONTENT_UNDERLINE_OFFSET_Y + TYPING_CONTENT_UNDERLINE_OFFSET_Y); @@ -138,25 +138,26 @@ TypingExamination.prototype.makeInputlineText = function(x, y) { TypingExamination.prototype.makeTextContents = function() { // typing content - var CONTENT_TEXT_WIDTH = 800; + var CONTENT_TEXT_WIDTH = 800; - var TYPING_CONTENT_X = 150; // 50; - var TYPING_CONTENT_Y = 380; - var RECORD_POSITION_X = 130; //990; + var TYPING_CONTENT_X = 150; + var TYPING_CONTENT_Y = 390; - var INPUT_TEXT_OFFSET_X = 10; - var INPUT_TEXT_OFFSET_Y = 60; + var LINE_POS_X = 130; - var BIG_FONT_SIZE = 28; - var TYPING_TEXT_OFFSET_HEIGHT = 50; //46; + var INPUT_TEXT_OFFSET_X = 10; + var INPUT_TEXT_OFFSET_Y = 60; - var TYPING_OFFSET_Y = 60; - var TYPING_PREVIEW_OFFSET_Y = 70; + var DONE_OFFSET_Y = 60; + var PREVIEW_OFFSET_Y = 130; + + var TEXT_HEIGHT = 50; + var BIG_FONT_SIZE = 28; // input content this.makeInputlineText(TYPING_CONTENT_X, TYPING_CONTENT_Y); - this.textTypingLine = this.makeLineText(RECORD_POSITION_X, TYPING_CONTENT_Y); + this.textTypingLine = this.makeLineText(LINE_POS_X, TYPING_CONTENT_Y); // typed done contents @@ -167,14 +168,14 @@ TypingExamination.prototype.makeTextContents = function() { for(var i = 0; i < TypingExamination.TYPING_CONTENT_DONE_COUNT; i++) { this.textTypingContentsDone[i] = this.makeUnderlineText( TYPING_CONTENT_X, - TYPING_CONTENT_Y - TYPING_OFFSET_Y - i * TYPING_TEXT_OFFSET_HEIGHT, + TYPING_CONTENT_Y - DONE_OFFSET_Y - i * TEXT_HEIGHT, ); - this.textTypingContentsDone[i].style.fill = TypingExamination.COLOR_CORRECT_INPUT_STRING; + this.textTypingContentsDone[i].style.fill = TypingExamination.COLOR_DONE_INPUT_STRING; this.textTypingContentsDone[i].style.backgroundColor = TypingExamination.COLOR_CORRECT_INPUT_BACKGROUND_STRING; this.textTypingRecordsDone[i] = this.makeLineText( - RECORD_POSITION_X, - TYPING_CONTENT_Y - TYPING_OFFSET_Y - i * TYPING_TEXT_OFFSET_HEIGHT, + LINE_POS_X, + TYPING_CONTENT_Y - DONE_OFFSET_Y - i * TEXT_HEIGHT, ); } @@ -186,13 +187,13 @@ TypingExamination.prototype.makeTextContents = function() { for(var i = 0; i < TypingExamination.TYPING_CONTENT_PREVIEW_COUNT; i++) { this.textTypingContentPreview[i] = this.makeUnderlineText( TYPING_CONTENT_X, - TYPING_CONTENT_Y + TYPING_OFFSET_Y + TYPING_PREVIEW_OFFSET_Y + i * TYPING_TEXT_OFFSET_HEIGHT, + TYPING_CONTENT_Y + PREVIEW_OFFSET_Y + i * TEXT_HEIGHT, ); this.textTypingContentPreview[i].style.fill = TypingExamination.COLOR_NOT_INPUT_STRING; this.textLineNumber[i] = this.makeLineText( - RECORD_POSITION_X, - TYPING_CONTENT_Y + TYPING_OFFSET_Y + TYPING_PREVIEW_OFFSET_Y + i * TYPING_TEXT_OFFSET_HEIGHT, + LINE_POS_X, + TYPING_CONTENT_Y + PREVIEW_OFFSET_Y + i * TEXT_HEIGHT, ); } @@ -606,21 +607,15 @@ TypingExamination.GAME_TIME_SEC = 60 * 5; // 5 minutes TypingExamination.SPACE_INDICATOR = "␣"; // "ˇ"; // "ᵔ"; // "ᵕ"; // "ˣ"; // "ᵛ"; // " · "; TypingExamination.ENTER_INDICATOR = "⏎"; // "↵"; // "↵"; -TypingExamination.TYPING_CONTENT_PREVIEW_COUNT = 4; // 3; -TypingExamination.TYPING_CONTENT_DONE_COUNT = 4; // 3; +TypingExamination.TYPING_CONTENT_PREVIEW_COUNT = 4; +TypingExamination.TYPING_CONTENT_DONE_COUNT = 4; TypingExamination.TYPING_COUNT_PLUS_ENTER = 1; -TypingExamination.OFFSET_RIGHT_ALIGN = 10; - -TypingExamination.WORD_COUNT_FOR_STAGE = 10; - -TypingExamination.COLOR_CONTENT_INPUT_STRING = "#dddddd"; -TypingExamination.COLOR_CORRECT_INPUT = "#ffff4d"; - TypingExamination.COLOR_NOT_INPUT_STRING = MainColor.DARK_GRAY_STRING; -TypingExamination.COLOR_NEXT_INPUT_STRING = MainColor.GOLD_STRING; // MainColor.LIGHT_CHOCO_STRING; -TypingExamination.COLOR_CORRECT_INPUT_STRING = MainColor.YELLOW_STRING; // MainColor.CYAN_STRING; +TypingExamination.COLOR_NEXT_INPUT_STRING = MainColor.GOLD_STRING; +TypingExamination.COLOR_CORRECT_INPUT_STRING = MainColor.YELLOW_STRING; +TypingExamination.COLOR_DONE_INPUT_STRING = MainColor.MOCCASIN_STRING; -TypingExamination.STAGE_BACKGROUND_COLOR = "#4d4d4d"; +TypingExamination.COLOR_STAGE_BACKGROUND_STRING = "#4d4d4d"; TypingExamination.COLOR_NEXT_INPUT_BACKGROUND_STRING = MainColor.DARKER_CHOCO_STRING; -TypingExamination.COLOR_CORRECT_INPUT_BACKGROUND_STRING = MainColor.DARK_CHOCO_STRING; // MainColor.DARK_CYAN_STRING; // "#333333"; +TypingExamination.COLOR_CORRECT_INPUT_BACKGROUND_STRING = MainColor.DARK_CHOCO_STRING; \ No newline at end of file