하석형 하석형 04-30
250430 하석형 .gradle, build 폴더 git 삭제, 사용자 정보 조회 예외처리 추가
@142fc1613a57f39de103282da5ad57020edba889
 
.gradle/8.13/checksums/checksums.lock (Binary) (deleted)
--- .gradle/8.13/checksums/checksums.lock
Binary file is not shown
 
.gradle/8.13/checksums/md5-checksums.bin (Binary) (deleted)
--- .gradle/8.13/checksums/md5-checksums.bin
Binary file is not shown
 
.gradle/8.13/checksums/sha1-checksums.bin (Binary) (deleted)
--- .gradle/8.13/checksums/sha1-checksums.bin
Binary file is not shown
 
.gradle/8.13/executionHistory/executionHistory.bin (Binary) (deleted)
--- .gradle/8.13/executionHistory/executionHistory.bin
Binary file is not shown
 
.gradle/8.13/executionHistory/executionHistory.lock (Binary) (deleted)
--- .gradle/8.13/executionHistory/executionHistory.lock
Binary file is not shown
 
.gradle/8.13/fileChanges/last-build.bin (Binary) (deleted)
--- .gradle/8.13/fileChanges/last-build.bin
Binary file is not shown
 
.gradle/8.13/fileHashes/fileHashes.bin (Binary) (deleted)
--- .gradle/8.13/fileHashes/fileHashes.bin
Binary file is not shown
 
.gradle/8.13/fileHashes/fileHashes.lock (Binary) (deleted)
--- .gradle/8.13/fileHashes/fileHashes.lock
Binary file is not shown
 
.gradle/8.13/fileHashes/resourceHashesCache.bin (Binary) (deleted)
--- .gradle/8.13/fileHashes/resourceHashesCache.bin
Binary file is not shown
 
.gradle/8.13/gc.properties (deleted)
--- .gradle/8.13/gc.properties
@@ -1,0 +0,0 @@
 
.gradle/buildOutputCleanup/buildOutputCleanup.lock (Binary) (deleted)
--- .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file is not shown
 
.gradle/buildOutputCleanup/cache.properties (deleted)
--- .gradle/buildOutputCleanup/cache.properties
@@ -1,2 +0,0 @@
-#Fri Mar 07 14:08:17 KST 2025
-gradle.version=8.13
 
.gradle/buildOutputCleanup/outputFiles.bin (Binary) (deleted)
--- .gradle/buildOutputCleanup/outputFiles.bin
Binary file is not shown
 
.gradle/file-system.probe (Binary) (deleted)
--- .gradle/file-system.probe
Binary file is not shown
 
.gradle/vcs-1/gc.properties (deleted)
--- .gradle/vcs-1/gc.properties
@@ -1,0 +0,0 @@
 
build/bootJarMainClassName (deleted)
--- build/bootJarMainClassName
@@ -1,1 +0,0 @@
-com.takensoft.CmsApplication(No newline at end of file)
 
build/libs/cms-0.0.1-SNAPSHOT-plain.jar (Binary) (deleted)
--- build/libs/cms-0.0.1-SNAPSHOT-plain.jar
Binary file is not shown
 
build/libs/cms-0.0.1-SNAPSHOT.jar (deleted)
--- build/libs/cms-0.0.1-SNAPSHOT.jar
This file is too big to display.
 
build/reports/problems/problems-report.html (deleted)
--- build/reports/problems/problems-report.html
@@ -1,663 +0,0 @@
-<!DOCTYPE html>
-
-<html lang="en">
-<head>
-    <!-- Required meta tags -->
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-
-                    <style type="text/css">
-                /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
-html {
-    line-height: 1.15;
-    -ms-text-size-adjust: 100%;
-    -webkit-text-size-adjust: 100%
-}
-
-body {
-    margin: 0
-}
-
-article, aside, footer, header, nav, section {
-    display: block
-}
-
-h1 {
-    font-size: 2em;
-    margin: .67em 0
-}
-
-figcaption, figure, main {
-    display: block
-}
-
-figure {
-    margin: 1em 40px
-}
-
-hr {
-    box-sizing: content-box;
-    height: 0;
-    overflow: visible
-}
-
-pre {
-    font-family: monospace, monospace;
-    font-size: 1em
-}
-
-a {
-    background-color: transparent;
-    -webkit-text-decoration-skip: objects
-}
-
-abbr[title] {
-    border-bottom: none;
-    text-decoration: underline;
-    text-decoration: underline dotted
-}
-
-b, strong {
-    font-weight: inherit
-}
-
-b, strong {
-    font-weight: bolder
-}
-
-code, kbd, samp {
-    font-family: monospace, monospace;
-    font-size: 1em
-}
-
-dfn {
-    font-style: italic
-}
-
-mark {
-    background-color: #ff0;
-    color: #000
-}
-
-small {
-    font-size: 80%
-}
-
-sub, sup {
-    font-size: 75%;
-    line-height: 0;
-    position: relative;
-    vertical-align: baseline
-}
-
-sub {
-    bottom: -.25em
-}
-
-sup {
-    top: -.5em
-}
-
-audio, video {
-    display: inline-block
-}
-
-audio:not([controls]) {
-    display: none;
-    height: 0
-}
-
-img {
-    border-style: none
-}
-
-svg:not(:root) {
-    overflow: hidden
-}
-
-button, input, optgroup, select, textarea {
-    font-family: sans-serif;
-    font-size: 100%;
-    line-height: 1.15;
-    margin: 0
-}
-
-button, input {
-    overflow: visible
-}
-
-button, select {
-    text-transform: none
-}
-
-[type=reset], [type=submit], button, html [type=button] {
-    -webkit-appearance: button
-}
-
-[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
-    border-style: none;
-    padding: 0
-}
-
-[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {
-    outline: 1px dotted ButtonText
-}
-
-fieldset {
-    padding: .35em .75em .625em
-}
-
-legend {
-    box-sizing: border-box;
-    color: inherit;
-    display: table;
-    max-width: 100%;
-    padding: 0;
-    white-space: normal
-}
-
-progress {
-    display: inline-block;
-    vertical-align: baseline
-}
-
-textarea {
-    overflow: auto
-}
-
-[type=checkbox], [type=radio] {
-    box-sizing: border-box;
-    padding: 0
-}
-
-[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
-    height: auto
-}
-
-[type=search] {
-    -webkit-appearance: textfield;
-    outline-offset: -2px
-}
-
-[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration {
-    -webkit-appearance: none
-}
-
-::-webkit-file-upload-button {
-    -webkit-appearance: button;
-    font: inherit
-}
-
-details, menu {
-    display: block
-}
-
-summary {
-    display: list-item
-}
-
-canvas {
-    display: inline-block
-}
-
-template {
-    display: none
-}
-
-[hidden] {
-    display: none
-}
-
-/* configuration cache styles */
-
-.report-wrapper {
-    margin: 0;
-    padding: 0 24px;
-}
-
-.gradle-logo {
-    width: 32px;
-    height: 24px;
-    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAGAAAAAA915G0AAAD5klEQVRIDbVWC0xTZxT+emmhVUEeA1/ROh/tFAFFGK7oJisIKsNVoOwBbJPowEWHzikRxeiMRpwwjDWRBHQLIzOmiRhe22BT40TitiyaMBQFfMEeLMIEaSmk+/+rvd7be4no6Elu7n++c/5zzv845/wyOyG4iGyDgzCdNOPLM9W41n4bnmNUiHo5DNsz0hGsmcV6lbkyAOOWXJjrz4qWp1C4o3z/LqzWL4VcJB1FIHmZHn/f78a6pDcxbeIEfNvQiPwTZbDZBpC24zOEaGfDpTsgtZby6u+QlrubFWUY3nh6AH39/ahr/Bn1jZfxW3ML2js60dtvgbtcQVblj8CZM7A0PBSrol6Ft+c4KZ8iTB1nwN0//8IEP9/hA2i924Gir0/iq8oa/NvbJzLiDKiUSqTE6pGVbEBY4BxnsYAPSnwXTa3tLCZ5BF3dPdAkGNHzoFcwcaRMnC4CeZkZiAgKFE252nITC1Pew9Dj5GNEGgS4Rbb5eZ1Te7UXG6FLX4cV6zeh5kIDaDpSunL9Boyf5nLOpwT4Sx+BxWrFK8QAnTAapPRQwofcj86uLoG59cbVEOzA0NAQNh38Atn5RSjY8rFAmc/I3dyQvOx1PsSNVy7Roa3ajHDePbBYLSLn1MaGd5KFAXy07xAOl59C6elK+I73hIHcbGd6wXs8qkyH8FZcjLOI5X/9/TrOnLsAldJDUu4As1NToFFPe3IEpm/M2HigwCFnU6t4Zw6Ck1JhGRhgcXq5juXloKyqFnlHirmz5CaNcEAv59kSE9wVikcB3O78A/MSU0Fznk/H9+yAetJEnPr+B8RFLsLcGS8ia28+qQuX+WrPNNZOV+Nc6VH4+3iz89g0pEaLzRUiQ3LGDWsM8Qidq2WL0PGKKlgf74ZIeQTAfFJ6a44WIsDXh9OW/dPdY58aawC9KK6kpOgolO7JxViVSuBGXnvxksudZ5F0O5yzGYxMJnBOGaau4fnPU2RNAtCFBKFoa7akczaAptY2iWmjB33+yQa4kZwfjpi2ex3Dyf43vuAljWQ/4Btmei1WPj+q45hF4U+1J4fEizCEvNf0EWHoIW244sfzoN1RipaT2kDfdjfv3MNpojdISjmfIheE8Fnp8WR9vJ2Zr+O+bYUmO+kJ9KnIUtf9bnvY2x9wcqrrvnCJvfL8Tw4V9v9LU7PdKzJaoNdy645AR4ph1JMncZHRKrVvYyYY5kmP8iO1v2T3dk6HDtYmrgJtOnwKnaPFrg8z+BBX7QSgEyOPJfX9Qd9DFs40GgTOHbrBs2ch4bXFuEG2mmFkeD9hpUMk+NMXEe0TNtsg/Ly94DVurEAuxfwHC1WiVbe0U7MAAAAASUVORK5CYII=");
-    background-size: contain;
-}
-
-.header {
-    display: flex;
-    flex-wrap: wrap;
-    position: fixed;
-    top: 0;
-    left: 0;
-    width: 100%;
-    padding: 24px 24px 0 24px;
-    background-color: white;
-    z-index: 1;
-}
-
-.learn-more {
-    margin-left: auto;
-    align-self: center;
-    font-size: 0.875rem;
-    font-weight: normal;
-}
-
-.title {
-    display: flex;
-    align-items: center;
-    padding: 18px 0 24px 0;
-    flex: 1 0 100%;
-}
-
-.content {
-    font-size: 0.875rem;
-    padding: 240px 0 48px;
-    overflow-x: auto;
-    white-space: nowrap;
-}
-
-.content ol:first-of-type {
-    margin: 0;
-}
-
-.tree-btn {
-    cursor: pointer;
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-top: -0.2em;
-}
-
-.tree-btn.collapsed {
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path d="M166.9 264.5l-117.8 116c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17L127.3 256 25.1 155.6c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l117.8 116c4.6 4.7 4.6 12.3-.1 17z" fill="%23999999" stroke="%23999999"/></svg>');
-}
-
-.tree-btn.expanded {
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M119.5 326.9L3.5 209.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 287.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 327c-4.7 4.6-12.3 4.6-17-.1z" fill="%23999999" stroke="%23999999"/></svg>');
-}
-
-ul .tree-btn {
-    margin-right: 3px;
-}
-
-.leaf-icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M32 256 H224" stroke="%23999999" stroke-width="48" stroke-linecap="round"/></svg>');
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-top: -0.2em;
-}
-
-.invisible-text {
-    user-select: all; /* Allow the text to be selectable */
-    color: transparent; /* Hide the text */
-    text-indent: -9999px; /* Move the text out of view */
-    position: relative;
-    white-space: pre; /* Preserve meaningful whitespace in the invisible text for copying */
-}
-
-.text-for-copy {
-    display: inline-block;
-}
-
-.enum-icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><circle cx="512" cy="512" r="200" /></svg>');
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-inline-start: 0.5ex;
-    margin-inline-end: 0.5ex;
-    margin-top: -0.2em;
-}
-
-.error-icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z" fill="%23FC461E" stroke="%23FC461E"/></svg>');
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-inline-start: 0.5ex;
-    margin-inline-end: 0.5ex;
-    margin-top: -0.2em;
-}
-
-.advice-icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('data:image/svg+xml;utf8,<svg width="800px" height="800px" viewBox="-4.93 0 122.88 122.88" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  style="enable-background:new 0 0 113.01 122.88" xml:space="preserve"><g><path d="M44.13,102.06c-1.14,0.03-2.14-0.81-2.3-1.96c-0.17-1.2,0.64-2.31,1.82-2.54c-1.3-7.37-4.85-11.43-8.6-15.72 c-2.92-3.34-5.95-6.81-8.34-11.92c-2.35-5.03-3.64-10.23-3.6-15.63c0.05-5.4,1.42-10.96,4.4-16.71c0.02-0.04,0.04-0.07,0.06-0.11 l0,0c3.91-6.62,9.38-11.04,15.47-13.52c5.11-2.09,10.66-2.8,16.1-2.3c5.42,0.5,10.73,2.2,15.37,4.94 c5.9,3.49,10.75,8.67,13.42,15.21c1.44,3.54,2.42,7.49,2.54,11.82c0.12,4.31-0.62,8.96-2.61,13.88 c-2.66,6.59-6.18,10.68-9.47,14.51c-3.03,3.53-5.85,6.81-7.42,11.84c0.89,0.21,1.59,0.94,1.73,1.9c0.17,1.24-0.7,2.39-1.94,2.56 l-0.77,0.11c-0.14,1.09-0.23,2.26-0.27,3.51l0.25-0.04c1.24-0.17,2.39,0.7,2.56,1.94c0.17,1.24-0.7,2.39-1.94,2.56l-0.78,0.11 c0.01,0.15,0.02,0.3,0.03,0.45l0,0c0.07,0.88,0.08,1.73,0.03,2.54l0.13-0.02c1.25-0.15,2.38,0.74,2.54,1.98 c0.15,1.25-0.74,2.38-1.98,2.54l-1.68,0.21c-1.2,3.11-3.34,5.48-5.87,6.94c-1.74,1.01-3.67,1.59-5.61,1.71 c-1.97,0.12-3.96-0.25-5.78-1.13c-2.08-1.02-3.94-2.71-5.29-5.14c-0.65-0.33-1.13-0.97-1.23-1.75c-0.04-0.31-0.01-0.61,0.07-0.89 c-0.39-1.16-0.68-2.43-0.87-3.83l-0.07,0.01c-1.24,0.17-2.39-0.7-2.56-1.94c-0.17-1.24,0.7-2.39,1.94-2.56l0.54-0.08 C44.19,104.32,44.18,103.16,44.13,102.06L44.13,102.06z M2.18,58.86C1.01,58.89,0.04,57.98,0,56.81c-0.04-1.17,0.88-2.14,2.05-2.18 l8.7-0.3c1.17-0.04,2.14,0.88,2.18,2.05c0.04,1.17-0.88,2.14-2.05,2.18L2.18,58.86L2.18,58.86z M110.68,50.25 c1.16-0.12,2.2,0.73,2.32,1.89c0.12,1.16-0.73,2.2-1.89,2.32l-8.66,0.91c-1.16,0.12-2.2-0.73-2.32-1.89 c-0.12-1.16,0.73-2.2,1.89-2.32L110.68,50.25L110.68,50.25z M94.91,14.78c0.65-0.97,1.96-1.23,2.93-0.58 c0.97,0.65,1.23,1.96,0.58,2.93l-4.84,7.24c-0.65,0.97-1.96,1.23-2.93,0.58c-0.97-0.65-1.23-1.96-0.58-2.93L94.91,14.78 L94.91,14.78z M57.63,2.06c0.03-1.17,1-2.09,2.16-2.06c1.17,0.03,2.09,1,2.06,2.16l-0.22,8.7c-0.03,1.17-1,2.09-2.16,2.06 c-1.17-0.03-2.09-1-2.06-2.16L57.63,2.06L57.63,2.06z M13.88,15.53c-0.86-0.8-0.9-2.14-0.11-2.99c0.8-0.86,2.14-0.9,2.99-0.11 l6.37,5.94c0.86,0.8,0.9,2.14,0.11,2.99c-0.8,0.86-2.14,0.9-2.99,0.11L13.88,15.53L13.88,15.53z M47.88,96.95l18.49-2.63 c1.59-6.7,5.05-10.73,8.8-15.08c3.08-3.58,6.36-7.4,8.76-13.34c1.76-4.35,2.41-8.43,2.31-12.19c-0.1-3.75-0.96-7.21-2.24-10.34 c-2.3-5.63-6.51-10.11-11.65-13.15c-4.11-2.43-8.8-3.94-13.59-4.37c-4.77-0.44-9.64,0.19-14.13,2.02 c-5.26,2.15-9.99,5.97-13.39,11.72c-2.64,5.12-3.86,10.02-3.9,14.73c-0.04,4.74,1.11,9.33,3.2,13.8c2.13,4.56,4.97,7.8,7.69,10.92 C42.47,83.9,46.48,88.49,47.88,96.95L47.88,96.95z M65.62,99.02l-17.27,2.45c0.05,1.1,0.07,2.25,0.05,3.47l17.05-2.42 C65.47,101.29,65.52,100.12,65.62,99.02L65.62,99.02z M48.49,109.52c0.12,0.92,0.3,1.76,0.53,2.54l16.55-2.04 c0.11-0.86,0.13-1.77,0.05-2.74l0,0l0-0.02l-0.01-0.17L48.49,109.52L48.49,109.52z M51.37,116.36c0.64,0.67,1.35,1.19,2.1,1.55 c1.15,0.56,2.42,0.79,3.67,0.72c1.29-0.08,2.57-0.47,3.74-1.15c1.1-0.64,2.09-1.53,2.88-2.65L51.37,116.36L51.37,116.36z"/></g></svg>');
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-inline-start: 0.5ex;
-    margin-inline-end: 0.5ex;
-    margin-top: -0.2em;
-}
-
-.warning-icon {
-    display: inline-block;
-    width: 13px;
-    height: 13px;
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M270.2 160h35.5c3.4 0 6.1 2.8 6 6.2l-7.5 196c-.1 3.2-2.8 5.8-6 5.8h-20.5c-3.2 0-5.9-2.5-6-5.8l-7.5-196c-.1-3.4 2.6-6.2 6-6.2zM288 388c-15.5 0-28 12.5-28 28s12.5 28 28 28 28-12.5 28-28-12.5-28-28-28zm281.5 52L329.6 24c-18.4-32-64.7-32-83.2 0L6.5 440c-18.4 31.9 4.6 72 41.6 72H528c36.8 0 60-40 41.5-72zM528 480H48c-12.3 0-20-13.3-13.9-24l240-416c6.1-10.6 21.6-10.7 27.7 0l240 416c6.2 10.6-1.5 24-13.8 24z" fill="%23DEAD22" stroke="%23DEAD22"/></svg>');
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-inline-start: 0.3ex;
-    margin-inline-end: 1.1ex;
-    margin-top: -0.1em;
-}
-
-.documentation-button {
-    cursor: pointer;
-    display: inline-block;
-    width: 13px;
-    height: 13px;
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 340c-15.464 0-28 12.536-28 28s12.536 28 28 28 28-12.536 28-28-12.536-28-28-28zm7.67-24h-16c-6.627 0-12-5.373-12-12v-.381c0-70.343 77.44-63.619 77.44-107.408 0-20.016-17.761-40.211-57.44-40.211-29.144 0-44.265 9.649-59.211 28.692-3.908 4.98-11.054 5.995-16.248 2.376l-13.134-9.15c-5.625-3.919-6.86-11.771-2.645-17.177C185.658 133.514 210.842 116 255.67 116c52.32 0 97.44 29.751 97.44 80.211 0 67.414-77.44 63.849-77.44 107.408V304c0 6.627-5.373 12-12 12zM256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8z" fill="%23999999" stroke="%23999999"/></svg>');
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-inline-start: 0.5ex;
-    margin-inline-end: 0.5ex;
-    margin-top: -0.2em;
-}
-
-.documentation-button::selection {
-    color: transparent;
-}
-
-.documentation-button:hover {
-    color: transparent;
-}
-
-.copy-button {
-    cursor: pointer;
-    display: inline-block;
-    width: 12px;
-    height: 12px;
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.941 193.941l-51.882-51.882A48 48 0 0 0 348.118 128H320V80c0-26.51-21.49-48-48-48h-66.752C198.643 13.377 180.858 0 160 0s-38.643 13.377-45.248 32H48C21.49 32 0 53.49 0 80v288c0 26.51 21.49 48 48 48h80v48c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V227.882a48 48 0 0 0-14.059-33.941zm-22.627 22.627a15.888 15.888 0 0 1 4.195 7.432H352v-63.509a15.88 15.88 0 0 1 7.431 4.195l51.883 51.882zM160 30c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18zM48 384c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h66.752c6.605 18.623 24.389 32 45.248 32s38.643-13.377 45.248-32H272c8.822 0 16 7.178 16 16v48H176c-26.51 0-48 21.49-48 48v208H48zm352 96H176c-8.822 0-16-7.178-16-16V176c0-8.822 7.178-16 16-16h144v72c0 13.2 10.8 24 24 24h72v208c0 8.822-7.178 16-16 16z" fill="%23999999" stroke="%23999999"/></svg>');
-    background-size: contain;
-    background-repeat: no-repeat;
-    vertical-align: middle;
-    margin-inline-start: 0.5ex;
-    margin-top: -0.2em;
-}
-
-.groups{
-    display: flex;
-    border-bottom: 1px solid #EDEEEF;
-    flex: 1 0 100%;
-}
-
-.uncategorized {
-    display: flex;
-    border-top: 4px solid #EDEEEF;
-    flex: 1 0 100%;
-}
-
-.group-selector {
-    padding: 0 52px 24px 0;
-    font-size: 0.9rem;
-    font-weight: bold;
-    color: #999999;
-    cursor: pointer;
-}
-
-.group-selector__count {
-    margin: 0 8px;
-    border-radius: 8px;
-    background-color: #999;
-    color: #fff;
-    padding: 1px 8px 2px;
-    font-size: 0.75rem;
-}
-
-.group-selector--active {
-    color: #02303A;
-    cursor: auto;
-}
-
-.group-selector--active .group-selector__count {
-    background-color: #686868;
-}
-
-.group-selector--disabled {
-    cursor: not-allowed;
-}
-
-.accordion-header {
-    cursor: pointer;
-}
-
-.container {
-    padding-left: 0.5em;
-    padding-right: 0.5em;
-}
-
-.stacktrace {
-    border-radius: 4px;
-    overflow-x: auto;
-    padding: 0.5rem;
-    margin-bottom: 0;
-    min-width: 1000px;
-}
-
-/* Lato (bold, regular) */
-@font-face {
-    font-display: swap;
-    font-family: Lato;
-    font-weight: 500;
-    font-style: normal;
-    src: url("https://assets.gradle.com/lato/fonts/lato-semibold/lato-semibold.woff2") format("woff2"),
-    url("https://assets.gradle.com/lato/fonts/lato-semibold/lato-semibold.woff") format("woff");
-}
-
-@font-face {
-    font-display: swap;
-    font-family: Lato;
-    font-weight: bold;
-    font-style: normal;
-    src: url("https://assets.gradle.com/lato/fonts/lato-bold/lato-bold.woff2") format("woff2"),
-    url("https://assets.gradle.com/lato/fonts/lato-bold/lato-bold.woff") format("woff");
-}
-
-* {
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-}
-
-html,
-body {
-    margin: 0;
-    padding: 0;
-}
-
-html {
-    font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
-    font-size: 16px;
-    font-weight: 400;
-    line-height: 1.5;
-}
-
-body {
-    color: #02303A;
-    background-color: #ffffff;
-    -webkit-text-size-adjust: 100%;
-    -ms-text-size-adjust: 100%;
-    -webkit-font-smoothing: antialiased;
-}
-
-
-/* typography */
-h1, h2, h3, h4, h5, h6 {
-    color: #02303A;
-    text-rendering: optimizeLegibility;
-    margin: 0;
-}
-
-h1 {
-    font-size: 1rem;
-}
-
-h2 {
-    font-size: 0.9rem;
-}
-
-h3 {
-    font-size: 1.125rem;
-}
-
-h4, h5, h6 {
-    font-size: 0.875rem;
-}
-
-h1 code {
-    font-weight: bold;
-}
-
-ul, ol, dl {
-    list-style-position: outside;
-    line-height: 1.6;
-    padding: 0;
-    margin: 0 0 0 20px;
-    list-style-type: none;
-}
-
-li {
-    line-height: 2;
-}
-
-a {
-    color: #1DA2BD;
-    text-decoration: none;
-    transition: all 0.3s ease, visibility 0s;
-}
-
-a:hover {
-    color: #35c1e4;
-}
-
-/* code */
-code, pre {
-    font-family: Inconsolata, Monaco, "Courier New", monospace;
-    font-style: normal;
-    font-variant-ligatures: normal;
-    font-variant-caps: normal;
-    font-variant-numeric: normal;
-    font-variant-east-asian: normal;
-    font-weight: normal;
-    font-stretch: normal;
-    color: #686868;
-}
-
-*:not(pre) > code {
-    letter-spacing: 0;
-    padding: 0.1em 0.5ex;
-    text-rendering: optimizeSpeed;
-    word-spacing: -0.15em;
-    word-wrap: break-word;
-}
-
-pre {
-    font-size: 0.75rem;
-    line-height: 1.8;
-    margin-top: 0;
-    margin-bottom: 1.5em;
-    padding: 1rem;
-}
-
-pre code {
-    background-color: transparent;
-    color: inherit;
-    line-height: 1.8;
-    font-size: 100%;
-    padding: 0;
-}
-
-a code {
-    color: #1BA8CB;
-}
-
-pre.code, pre.programlisting, pre.screen, pre.tt {
-    background-color: #f7f7f8;
-    border-radius: 4px;
-    font-size: 1em;
-    line-height: 1.45;
-    margin-bottom: 1.25em;
-    overflow-x: auto;
-    padding: 1rem;
-}
-
-li em, p em {
-    padding: 0 1px;
-}
-
-code em, tt em {
-    text-decoration: none;
-}
-
-code + .copy-button {
-    margin-inline-start: 0.2ex;
-}
-
-.java-exception {
-    font-size: 0.75rem;
-    padding-left: 24px;
-}
-
-.java-exception ul {
-    margin: 0;
-    line-height: inherit;
-}
-
-.java-exception code {
-    white-space: pre;
-}
-
-.java-exception-part-toggle {
-    user-select: none;
-    cursor: pointer;
-    border-radius: 2px;
-    padding: 0.1em 0.2em;
-    background: azure;
-    color: #686868;
-}
-
-                </style>
-    <!-- Inconsolata is used as a default monospace font in the report. -->
-    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inconsolata:400,700" />
-
-    <title>Gradle Configuration Cache</title>
-</head>
-<body>
-
-<div id="playground"></div>
-
-<div class="report" id="report">
-    Loading...
-</div>
-
-<script type="text/javascript">
-function configurationCacheProblems() { return (
-// begin-report-data
-{"diagnostics":[{"locations":[{"path":"C:\\Users\\takensoft\\IdeaProjects\\cms_backend\\src\\main\\java\\com\\takensoft\\cms\\bbs\\web\\BbsMngController.java"},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: C:\\Users\\takensoft\\IdeaProjects\\cms_backend\\src\\main\\java\\com\\takensoft\\cms\\bbs\\web\\BbsMngController.java uses unchecked or unsafe operations."}],"contextualLabel":"C:\\Users\\takensoft\\IdeaProjects\\cms_backend\\src\\main\\java\\com\\takensoft\\cms\\bbs\\web\\BbsMngController.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"C:\\Users\\takensoft\\IdeaProjects\\cms_backend\\src\\main\\java\\com\\takensoft\\cms\\bbs\\web\\BbsMngController.java"},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]}],"problemsReport":{"totalProblemCount":2,"buildName":"cms","requestedTasks":":classes","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
-// end-report-data
-);}
-</script>
-                <script type="text/javascript">
-                !function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["configuration-cache-report"]=t():n["configuration-cache-report"]=t()}(this,(()=>(({70:function(){void 0===ArrayBuffer.isView&&(ArrayBuffer.isView=function(n){return null!=n&&null!=n.__proto__&&n.__proto__.__proto__===Int8Array.prototype.__proto__}),void 0===Math.imul&&(Math.imul=function(n,t){return(4294901760&n)*(65535&t)+(65535&n)*(0|t)|0}),this["configuration-cache-report"]=function(n){"use strict";var t,r,i,e,u,o,f,s,c,a,h,l,_,v,d,g,w,b,p,m,k,y,q,B,C,x,j,P,I,S,z,E,T,L,N,A,M,F,D,O,R,H,$,G,U,V,Q,Z,Y,W,K,X,J,nn,tn,rn,en,un,on,fn,sn,cn,an,hn,ln,_n,vn,dn,gn,wn,bn,pn,mn,kn,yn,qn,Bn,Cn,xn,jn,Pn,In,Sn,zn=Math.imul,En=ArrayBuffer.isView;function Tn(n,t){if(!(t>=0))throw fu(ie("Requested element count "+t+" is less than zero."));return function(n,t){if(!(t>=0))throw fu(ie("Requested element count "+t+" is less than zero."));if(0===t)return pt();if(t>=n.length)return function(n){switch(n.length){case 0:return pt();case 1:return gr(n[0]);default:return function(n){return Ar(function(n){return new qt(n,!1)}(n))}(n)}}(n);if(1===t)return gr(n[0]);var r=0,i=Nr(),e=0,u=n.length;n:for(;e<u;){var o=n[e];if(e=e+1|0,i.d(o),(r=r+1|0)===t)break n}return i}(n,Wn(n.length-t|0,0))}function Ln(n,t,r,i,e,u,o){return t=t===A?", ":t,r=r===A?"":r,i=i===A?"":i,e=e===A?-1:e,u=u===A?"...":u,o=o===A?null:o,function(n,t,r,i,e,u,o,f){r=r===A?", ":r,i=i===A?"":i,e=e===A?"":e,u=u===A?-1:u,o=o===A?"...":o,f=f===A?null:f,t.e(i);var s=0,c=0,a=n.length;n:for(;c<a;){var h=n[c];if(c=c+1|0,(s=s+1|0)>1&&t.e(r),!(u<0||s<=u))break n;Qt(t,h,f)}return u>=0&&s>u&&t.e(o),t.e(e),t}(n,bi(),t,r,i,e,u,o).toString()}function Nn(n){return n.length-1|0}function An(n,t){if(null==t){var r=0,i=n.length-1|0;if(r<=i)do{var e=r;if(r=r+1|0,null==n[e])return e}while(r<=i)}else{var u=0,o=n.length-1|0;if(u<=o)do{var f=u;if(u=u+1|0,oe(t,n[f]))return f}while(u<=o)}return-1}function Mn(n,t,r,i,e,u,o){return t=t===A?", ":t,r=r===A?"":r,i=i===A?"":i,e=e===A?-1:e,u=u===A?"...":u,o=o===A?null:o,Fn(n,bi(),t,r,i,e,u,o).toString()}function Fn(n,t,r,i,e,u,o,f){r=r===A?", ":r,i=i===A?"":i,e=e===A?"":e,u=u===A?-1:u,o=o===A?"...":o,f=f===A?null:f,t.e(i);var s=0,c=n.f();n:for(;c.g();){var a=c.h();if((s=s+1|0)>1&&t.e(r),!(u<0||s<=u))break n;Qt(t,a,f)}return u>=0&&s>u&&t.e(o),t.e(e),t}function Dn(n){if(n.i())throw mu("List is empty.");return n.j(0)}function On(n){return new Yn(n)}function Rn(n){if(Ue(n,Ti)){var t;switch(n.k()){case 0:t=pt();break;case 1:t=gr(Ue(n,Ei)?n.j(0):n.f().h());break;default:t=Hn(n)}return t}return mt(Vn(n))}function Hn(n){return Ar(n)}function $n(n){if(Ue(n,Ti)&&n.k()<=1)return Rn(n);var t=Vn(n);return function(n){var t=(n.k()/2|0)-1|0;if(t<0)return lr();var r=kt(n),i=0;if(i<=t)do{var e=i;i=i+1|0;var u=n.j(e);n.f4(e,n.j(r)),n.f4(r,u),r=r-1|0}while(e!==t)}(t),t}function Gn(n,t){if(!(t>=0))throw fu(ie("Requested element count "+t+" is less than zero."));return function(n,t){if(!(t>=0))throw fu(ie("Requested element count "+t+" is less than zero."));if(0===t)return pt();if(Ue(n,Ti)){if(t>=n.k())return Rn(n);if(1===t)return gr(function(n){if(Ue(n,Ei))return Dn(n);var t=n.f();if(!t.g())throw mu("Collection is empty.");return t.h()}(n))}var r=0,i=Nr(),e=n.f();n:for(;e.g();){var u=e.h();if(i.d(u),(r=r+1|0)===t)break n}return mt(i)}(n,Wn(n.k()-t|0,0))}function Un(n,t){if(!(t>=0))throw fu(ie("Requested element count "+t+" is less than zero."));if(0===t)return pt();var r=n.k();if(t>=r)return Rn(n);if(1===t)return gr(Qn(n));var i=Nr();if(Ue(n,li)){var e=r-t|0;if(e<r)do{var u=e;e=e+1|0,i.d(n.j(u))}while(e<r)}else for(var o=n.l(r-t|0);o.g();){var f=o.h();i.d(f)}return i}function Vn(n){return Ue(n,Ti)?Hn(n):Zn(n,Lr())}function Qn(n){if(n.i())throw mu("List is empty.");return n.j(kt(n))}function Zn(n,t){for(var r=n.f();r.g();){var i=r.h();t.d(i)}return t}function Yn(n){this.n_1=n}function Wn(n,t){return n<t?t:n}function Kn(n,t){return n>t?t:n}function Xn(n,t){return Ut().q(n,t,-1)}function Jn(n,t){return new Et(n,t)}function nt(n){var t=n.f();if(!t.g())return pt();var r=t.h();if(!t.g())return gr(r);var i=Lr();for(i.d(r);t.g();)i.d(t.h());return i}function tt(n){this.r_1=n}function rt(n,t){this.s_1=n,this.t_1=t}function it(){}function et(n){this.x_1=n,this.w_1=0}function ut(n,t){this.a1_1=n,et.call(this,n),ft().b1(t,this.a1_1.k()),this.w_1=t}function ot(){t=this}function ft(){return null==t&&new ot,t}function st(){ft(),it.call(this)}function ct(n){this.h1_1=n}function at(n,t){return t===n?"(this Map)":Oi(t)}function ht(n,t){var r;n:{for(var i=n.o().f();i.g();){var e=i.h();if(oe(e.j1(),t)){r=e;break n}}r=null}return r}function lt(){r=this}function _t(){return null==r&&new lt,r}function vt(n){this.q1_1=n,it.call(this)}function dt(){_t(),this.n1_1=null,this.o1_1=null}function gt(){i=this}function wt(){return null==i&&new gt,i}function bt(n){return n.length>0?nu(n):pt()}function pt(){return null==e&&new yt,e}function mt(n){switch(n.k()){case 0:return pt();case 1:return gr(n.j(0));default:return n}}function kt(n){return n.k()-1|0}function yt(){e=this,this.z1_1=new de(-1478467534,-1720727600)}function qt(n,t){this.b2_1=n,this.c2_1=t}function Bt(){u=this}function Ct(){return null==u&&new Bt,u}function xt(n,t){return Ue(n,Ti)?n.k():t}function jt(n,t){if(Ue(t,Ti))return n.m(t);for(var r=!1,i=t.f();i.g();){var e=i.h();n.d(e)&&(r=!0)}return r}function Pt(){}function It(n,t){this.h2_1=n,this.g2_1=n.i2_1.l(function(n,t){if(!(0<=t&&t<=n.k()))throw cu("Position index "+t+" must be in range ["+Oe(0,n.k())+"].");return n.k()-t|0}(n,t))}function St(n){st.call(this),this.i2_1=n}function zt(n){this.k2_1=n,this.j2_1=n.l2_1.f()}function Et(n,t){this.l2_1=n,this.m2_1=t}function Tt(n){for(;n.n2_1.g();){var t=n.n2_1.h();if(n.q2_1.t2_1(t)===n.q2_1.s2_1)return n.p2_1=t,n.o2_1=1,lr()}n.o2_1=0}function Lt(n){this.q2_1=n,this.n2_1=n.r2_1.f(),this.o2_1=-1,this.p2_1=null}function Nt(n,t,r){t=t===A||t,this.r2_1=n,this.s2_1=t,this.t2_1=r}function At(){return null==o&&new Mt,o}function Mt(){o=this,this.u2_1=new de(1993859828,793161749)}function Ft(n,t,r){return Dt(Dt(n,r)-Dt(t,r)|0,r)}function Dt(n,t){var r=n%t|0;return r>=0?r:r+t|0}function Ot(){f=this,this.p_1=new Ht(1,0)}function Rt(){return null==f&&new Ot,f}function Ht(n,t){Rt(),Vt.call(this,n,t,1)}function $t(n,t,r){Pt.call(this),this.d3_1=r,this.e3_1=t,this.f3_1=this.d3_1>0?n<=t:n>=t,this.g3_1=this.f3_1?n:this.e3_1}function Gt(){s=this}function Ut(){return null==s&&new Gt,s}function Vt(n,t,r){if(Ut(),0===r)throw fu("Step must be non-zero.");if(r===vr().MIN_VALUE)throw fu("Step must be greater than Int.MIN_VALUE to avoid overflow on negation.");this.z2_1=n,this.a3_1=function(n,t,r){var i;if(r>0)i=n>=t?t:t-Ft(t,n,r)|0;else{if(!(r<0))throw fu("Step is zero.");i=n<=t?t:t+Ft(n,t,0|-r)|0}return i}(n,t,r),this.b3_1=r}function Qt(n,t,r){null!=r?n.e(r(t)):null==t||Ze(t)?n.e(t):t instanceof zi?n.i3(t.h3_1):n.e(Oi(t))}function Zt(n,t,r){if(n===t)return!0;if(!(r=r!==A&&r))return!1;var i=mi(n),e=mi(t);return i===e||oe(new zi(Zi(Pi(i).toLowerCase(),0)),new zi(Zi(Pi(e).toLowerCase(),0)))}function Yt(n){return Wi(n)-1|0}function Wt(n,t,r,i){return r=r===A?0:r,(i=i!==A&&i)||"string"!=typeof n?Kt(n,t,r,Wi(n),i):n.indexOf(t,r)}function Kt(n,t,r,i,e,u){var o=(u=u!==A&&u)?Xn(Kn(r,Yt(n)),Wn(i,0)):Oe(Wn(r,0),Kn(i,Wi(n)));if("string"==typeof n&&"string"==typeof t){var f=o.z2_1,s=o.a3_1,c=o.b3_1;if(c>0&&f<=s||c<0&&s<=f)do{var a=f;if(f=f+c|0,xi(t,0,n,a,Wi(t),e))return a}while(a!==s)}else{var h=o.z2_1,l=o.a3_1,_=o.b3_1;if(_>0&&h<=l||_<0&&l<=h)do{var v=h;if(h=h+_|0,tr(t,0,n,v,Wi(t),e))return v}while(v!==l)}return-1}function Xt(n){var t=0,r=Wi(n)-1|0,i=!1;n:for(;t<=r;){var e=ki(Zi(n,i?r:t));if(i){if(!e)break n;r=r-1|0}else e?t=t+1|0:i=!0}return Ki(n,t,r+1|0)}function Jt(n,t){return ie(Ki(n,t.y2(),t.c3()+1|0))}function nr(n,t,r,i,e){r=r===A?0:r,i=i!==A&&i,rr(e=e===A?0:e);var u,o,f=nu(t);return new ur(n,r,e,(u=f,o=i,function(n,t){var r=function(n,t,r,i){if(!i&&1===t.k()){var e=function(n){if(Ue(n,Ei))return function(n){var t;switch(n.k()){case 0:throw mu("List is empty.");case 1:t=n.j(0);break;default:throw fu("List has more than one element.")}return t}(n);var t=n.f();if(!t.g())throw mu("Collection is empty.");var r=t.h();if(t.g())throw fu("Collection has more than one element.");return r}(t),u=Wt(n,e,r);return u<0?null:fr(u,e)}var o=Oe(Wn(r,0),Wi(n));if("string"==typeof n){var f=o.z2_1,s=o.a3_1,c=o.b3_1;if(c>0&&f<=s||c<0&&s<=f)do{var a,h=f;f=f+c|0;n:{for(var l=t.f();l.g();){var _=l.h();if(xi(_,0,n,h,_.length,i)){a=_;break n}}a=null}if(null!=a)return fr(h,a)}while(h!==s)}else{var v=o.z2_1,d=o.a3_1,g=o.b3_1;if(g>0&&v<=d||g<0&&d<=v)do{var w,b=v;v=v+g|0;n:{for(var p=t.f();p.g();){var m=p.h();if(tr(m,0,n,b,m.length,i)){w=m;break n}}w=null}if(null!=w)return fr(b,w)}while(b!==d)}return null}(n,u,t,o);return null==r?null:fr(r.t3_1,r.u3_1.length)}))}function tr(n,t,r,i,e,u){if(i<0||t<0||t>(Wi(n)-e|0)||i>(Wi(r)-e|0))return!1;var o=0;if(o<e)do{var f=o;if(o=o+1|0,!Zt(Zi(n,t+f|0),Zi(r,i+f|0),u))return!1}while(o<e);return!0}function rr(n){if(!(n>=0))throw fu(ie("Limit must be non-negative, but was "+n))}function ir(n){if(n.l3_1<0)n.j3_1=0,n.m3_1=null;else{var t;if(n.o3_1.r3_1>0?(n.n3_1=n.n3_1+1|0,t=n.n3_1>=n.o3_1.r3_1):t=!1,t||n.l3_1>Wi(n.o3_1.p3_1))n.m3_1=Oe(n.k3_1,Yt(n.o3_1.p3_1)),n.l3_1=-1;else{var r=n.o3_1.s3_1(n.o3_1.p3_1,n.l3_1);if(null==r)n.m3_1=Oe(n.k3_1,Yt(n.o3_1.p3_1)),n.l3_1=-1;else{var i=r.v3(),e=r.w3();n.m3_1=function(n,t){return t<=vr().MIN_VALUE?Rt().p_1:Oe(n,t-1|0)}(n.k3_1,i),n.k3_1=i+e|0,n.l3_1=n.k3_1+(0===e?1:0)|0}}n.j3_1=1}}function er(n){this.o3_1=n,this.j3_1=-1,this.k3_1=function(n,t,r){if(0>r)throw fu("Cannot coerce value to an empty range: maximum "+r+" is less than minimum 0.");return n<0?0:n>r?r:n}(n.q3_1,0,Wi(n.p3_1)),this.l3_1=this.k3_1,this.m3_1=null,this.n3_1=0}function ur(n,t,r,i){this.p3_1=n,this.q3_1=t,this.r3_1=r,this.s3_1=i}function or(n,t){this.t3_1=n,this.u3_1=t}function fr(n,t){return new or(n,t)}function sr(){}function cr(){}function ar(){}function hr(){c=this}function lr(){return null==c&&new hr,c}function _r(){a=this,this.MIN_VALUE=-2147483648,this.MAX_VALUE=2147483647,this.SIZE_BYTES=4,this.SIZE_BITS=32}function vr(){return null==a&&new _r,a}function dr(n){for(var t=[],r=n.f();r.g();)t.push(r.h());return t}function gr(n){return 0===(t=[n]).length?Lr():Ar(new qt(t,!0));var t}function wr(n){return n<0&&function(){throw yu("Index overflow has happened.")}(),n}function br(n){return void 0!==n.toArray?n.toArray():dr(n)}function pr(n){return function(n,t){for(var r=0,i=n.length;r<i;){var e=n[r];r=r+1|0,t.d(e)}return t}(t=[n],(r=t.length,i=ce(se(Zr)),function(n,t,r){zr.call(r),Zr.call(r),r.y5_1=function(n){return Ur(n,0,ce(se(Vr)))}(n)}(r,0,i),i));var t,r,i}function mr(){it.call(this)}function kr(n){this.j4_1=n,this.h4_1=0,this.i4_1=-1}function yr(n,t){this.n4_1=n,kr.call(this,n),ft().b1(t,this.n4_1.k()),this.h4_1=t}function qr(){mr.call(this),this.o4_1=0}function Br(n){this.r4_1=n}function Cr(n){this.s4_1=n}function xr(n,t){this.t4_1=n,this.u4_1=t}function jr(){zr.call(this)}function Pr(n){this.x4_1=n,zr.call(this)}function Ir(n){this.e5_1=n,mr.call(this)}function Sr(){dt.call(this),this.c5_1=null,this.d5_1=null}function zr(){mr.call(this)}function Er(){h=this;var n=Nr();n.c_1=!0,this.i5_1=n}function Tr(){return null==h&&new Er,h}function Lr(){return n=ce(se(Fr)),t=[],Fr.call(n,t),n;var n,t}function Nr(n){return t=ce(se(Fr)),r=[],Fr.call(t,r),t;var t,r}function Ar(n){return function(n,t){var r;return r=br(n),Fr.call(t,r),t}(n,ce(se(Fr)))}function Mr(n,t){return ft().e1(t,n.k()),t}function Fr(n){Tr(),qr.call(this),this.b_1=n,this.c_1=!1}function Dr(n,t,r,i,e){if(r===i)return n;var u=(r+i|0)/2|0,o=Dr(n,t,r,u,e),f=Dr(n,t,u+1|0,i,e),s=o===t?n:t,c=r,a=u+1|0,h=r;if(h<=i)do{var l=h;if(h=h+1|0,c<=u&&a<=i){var _=o[c],v=f[a];e.compare(_,v)<=0?(s[l]=_,c=c+1|0):(s[l]=v,a=a+1|0)}else c<=u?(s[l]=o[c],c=c+1|0):(s[l]=f[a],a=a+1|0)}while(l!==i);return s}function Or(n,t){return(3&n)-(3&t)|0}function Rr(){_=this}function Hr(n){this.n5_1=n,jr.call(this)}function $r(n){return function(n,t){Sr.call(t),Vr.call(t),t.t5_1=n,t.u5_1=n.w5()}(new Jr((null==_&&new Rr,_)),n),n}function Gr(){return $r(ce(se(Vr)))}function Ur(n,t,r){if($r(r),!(n>=0))throw fu(ie("Negative initial capacity: "+n));if(!(t>=0))throw fu(ie("Non-positive load factor: "+t));return r}function Vr(){this.v5_1=null}function Qr(n,t){return zr.call(t),Zr.call(t),t.y5_1=n,t}function Zr(){}function Yr(n,t){var r=Kr(n,n.h6_1.m5(t));if(null==r)return null;var i=r;if(null!=i&&Ve(i))return Wr(i,n,t);var e=i;return n.h6_1.l5(e.j1(),t)?e:null}function Wr(n,t,r){var i;n:{for(var e=0,u=n.length;e<u;){var o=n[e];if(e=e+1|0,t.h6_1.l5(o.j1(),r)){i=o;break n}}i=null}return i}function Kr(n,t){var r=n.i6_1[t];return void 0===r?null:r}function Xr(n){this.g6_1=n,this.z5_1=-1,this.a6_1=Object.keys(n.i6_1),this.b6_1=-1,this.c6_1=null,this.d6_1=!1,this.e6_1=-1,this.f6_1=null}function Jr(n){this.h6_1=n,this.i6_1=this.k6(),this.j6_1=0}function ni(){}function ti(n){this.n6_1=n,this.l6_1=null,this.m6_1=null,this.m6_1=this.n6_1.y6_1.v6_1}function ri(){v=this;var n,t=(fi(0,0,n=ce(se(si))),n);t.x6_1=!0,this.e7_1=t}function ii(){return null==v&&new ri,v}function ei(n,t,r){this.d7_1=n,xr.call(this,t,r),this.b7_1=null,this.c7_1=null}function ui(n){this.y6_1=n,jr.call(this)}function oi(){return $r(n=ce(se(si))),si.call(n),n.w6_1=Gr(),n;var n}function fi(n,t,r){return Ur(n,t,r),si.call(r),r.w6_1=Gr(),r}function si(){ii(),this.v6_1=null,this.x6_1=!1}function ci(){d=this;var n=ai(0),t=n.y5_1;(t instanceof si?t:_e()).j5(),this.f7_1=n}function ai(n){return function(n,t){return function(n,t,r){Qr(function(n,t){return fi(n,t,ce(se(si)))}(n,t),r),hi.call(r)}(n,0,t),t}(n,ce(se(hi)))}function hi(){null==d&&new ci}function li(){}function _i(){}function vi(n){_i.call(this),this.k7_1=n}function di(){gi.call(this)}function gi(){_i.call(this),this.m7_1=""}function wi(){if(!w){w=!0;var n="undefined"!=typeof process&&process.versions&&!!process.versions.node;g=n?new vi(process.stdout):new di}}function bi(){return n=ce(se(pi)),pi.call(n,""),n;var n}function pi(n){this.o7_1=void 0!==n?n:""}function mi(n){var t=Pi(n).toUpperCase();return t.length>1?n:Zi(t,0)}function ki(n){return function(n){return 9<=n&&n<=13||28<=n&&n<=32||160===n||n>4096&&(5760===n||8192<=n&&n<=8202||8232===n||8233===n||8239===n||8287===n||12288===n)}(n)}function yi(){b=this,this.q7_1=new RegExp("[\\\\^$*+?.()|[\\]{}]","g"),this.r7_1=new RegExp("[\\\\$]","g"),this.s7_1=new RegExp("\\$","g")}function qi(){return null==b&&new yi,b}function Bi(n,t){qi(),this.v7_1=n,this.w7_1=function(n){if(Ue(n,Ti)){var t;switch(n.k()){case 0:t=At();break;case 1:t=pr(Ue(n,Ei)?n.j(0):n.f().h());break;default:t=Zn(n,ai(n.k()))}return t}return function(n){switch(n.k()){case 0:return At();case 1:return pr(n.f().h());default:return n}}(Zn(n,(r=ce(se(hi)),Qr(oi(),r),hi.call(r),r)));var r}(t),this.x7_1=new RegExp(n,Mn(t,"","gu",A,A,A,Ci)),this.y7_1=null,this.z7_1=null}function Ci(n){return n.d8_1}function xi(n,t,r,i,e,u){return tr(n,t,r,i,e,u=u!==A&&u)}function ji(n,t){return n-t|0}function Pi(n){return String.fromCharCode(n)}function Ii(){p=this,this.e8_1=0,this.f8_1=65535,this.g8_1=55296,this.h8_1=56319,this.i8_1=56320,this.j8_1=57343,this.k8_1=55296,this.l8_1=57343,this.m8_1=2,this.n8_1=16}function Si(){return null==p&&new Ii,p}function zi(n){Si(),this.h3_1=n}function Ei(){}function Ti(){}function Li(){}function Ni(){}function Ai(){}function Mi(){}function Fi(){m=this}function Di(n,t){null==m&&new Fi,this.p8_1=n,this.q8_1=t}function Oi(n){var t=null==n?null:ie(n);return null==t?"null":t}function Ri(n){return new Hi(n)}function Hi(n){this.t8_1=n,this.s8_1=0}function $i(){return Qi(),k}function Gi(){return Qi(),y}function Ui(){return Qi(),q}function Vi(){return Qi(),B}function Qi(){x||(x=!0,k=new ArrayBuffer(8),y=new Float64Array($i()),new Float32Array($i()),q=new Int32Array($i()),Gi()[0]=-1,B=0!==Ui()[0]?1:0,C=1-Vi()|0)}function Zi(n,t){var r;if(Yi(n)){var i,e=n.charCodeAt(t);if(Si(),e<0?i=!0:(Si(),i=e>65535),i)throw fu("Invalid Char code: "+e);r=De(e)}else r=n.y3(t);return r}function Yi(n){return"string"==typeof n}function Wi(n){return Yi(n)?n.length:n.x3()}function Ki(n,t,r){return Yi(n)?n.substring(t,r):n.z3(t,r)}function Xi(n){return ie(n)}function Ji(n,t){var r;switch(typeof n){case"number":r="number"==typeof t?ne(n,t):t instanceof de?ne(n,t.w8()):te(n,t);break;case"string":case"boolean":r=te(n,t);break;default:r=function(n,t){return n.a4(t)}(n,t)}return r}function ne(n,t){var r;if(n<t)r=-1;else if(n>t)r=1;else if(n===t){var i;if(0!==n)i=0;else{var e=1/n;i=e===1/t?0:e<0?-1:1}r=i}else r=n!=n?t!=t?0:1:-1;return r}function te(n,t){return n<t?-1:n>t?1:0}function re(n){if(!("kotlinHashCodeValue$"in n)){var t=4294967296*Math.random()|0,r=new Object;r.value=t,r.enumerable=!1,Object.defineProperty(n,"kotlinHashCodeValue$",r)}return n.kotlinHashCodeValue$}function ie(n){return null==n?"null":function(n){return!!$e(n)||En(n)}(n)?"[...]":n.toString()}function ee(n){if(null==n)return 0;var t;switch(typeof n){case"object":t="function"==typeof n.hashCode?n.hashCode():re(n);break;case"function":t=re(n);break;case"number":t=function(n){return Qi(),(0|n)===n?Fe(n):(Gi()[0]=n,zn(Ui()[(Qi(),C)],31)+Ui()[Vi()]|0)}(n);break;case"boolean":t=n?1:0;break;default:t=ue(String(n))}return t}function ue(n){var t=0,r=0,i=n.length-1|0;if(r<=i)do{var e=r;r=r+1|0;var u=n.charCodeAt(e);t=zn(t,31)+u|0}while(e!==i);return t}function oe(n,t){return null==n?null==t:null!=t&&("object"==typeof n&&"function"==typeof n.equals?n.equals(t):n!=n?t!=t:"number"==typeof n&&"number"==typeof t?n===t&&(0!==n||1/n==1/t):n===t)}function fe(n,t){null!=Error.captureStackTrace?Error.captureStackTrace(n,t):n.stack=(new Error).stack}function se(n){return n.prototype}function ce(n){return Object.create(n)}function ae(n,t,r){Error.call(n),function(n,t,r){var i=Xe(Object.getPrototypeOf(n));if(!(1&i)){var e;if(null==t){var u;if(null!==t){var o=null==r?null:r.toString();u=null==o?A:o}else u=A;e=u}else e=t;n.message=e}2&i||(n.cause=r),n.name=Object.getPrototypeOf(n).constructor.name}(n,t,r)}function he(n){var t;return null==n?function(){throw ju()}():t=n,t}function le(){throw Iu()}function _e(){throw zu()}function ve(){j=this,this.x8_1=new de(0,-2147483648),this.y8_1=new de(-1,2147483647),this.z8_1=8,this.a9_1=64}function de(n,t){null==j&&new ve,ar.call(this),this.u8_1=n,this.v8_1=t}function ge(){return Me(),P}function we(){return Me(),I}function be(){return Me(),S}function pe(){return Me(),E}function me(){return Me(),T}function ke(n,t){if(Me(),xe(n,t))return 0;var r=Ie(n),i=Ie(t);return r&&!i?-1:!r&&i?1:Ie(qe(n,t))?-1:1}function ye(n,t){Me();var r=n.v8_1>>>16|0,i=65535&n.v8_1,e=n.u8_1>>>16|0,u=65535&n.u8_1,o=t.v8_1>>>16|0,f=65535&t.v8_1,s=t.u8_1>>>16|0,c=0,a=0,h=0,l=0;return c=(c=c+((a=(a=a+((h=(h=h+((l=l+(u+(65535&t.u8_1)|0)|0)>>>16|0)|0)+(e+s|0)|0)>>>16|0)|0)+(i+f|0)|0)>>>16|0)|0)+(r+o|0)|0,new de((h&=65535)<<16|(l&=65535),(c&=65535)<<16|(a&=65535))}function qe(n,t){return Me(),ye(n,t.e9())}function Be(n,t){if(Me(),Se(n))return ge();if(Se(t))return ge();if(xe(n,pe()))return ze(t)?pe():ge();if(xe(t,pe()))return ze(n)?pe():ge();if(Ie(n))return Ie(t)?Be(Ee(n),Ee(t)):Ee(Be(Ee(n),t));if(Ie(t))return Ee(Be(n,Ee(t)));if(Te(n,me())&&Te(t,me()))return Le(Ce(n)*Ce(t));var r=n.v8_1>>>16|0,i=65535&n.v8_1,e=n.u8_1>>>16|0,u=65535&n.u8_1,o=t.v8_1>>>16|0,f=65535&t.v8_1,s=t.u8_1>>>16|0,c=65535&t.u8_1,a=0,h=0,l=0,_=0;return l=l+((_=_+zn(u,c)|0)>>>16|0)|0,_&=65535,h=(h=h+((l=l+zn(e,c)|0)>>>16|0)|0)+((l=(l&=65535)+zn(u,s)|0)>>>16|0)|0,l&=65535,a=(a=(a=a+((h=h+zn(i,c)|0)>>>16|0)|0)+((h=(h&=65535)+zn(e,s)|0)>>>16|0)|0)+((h=(h&=65535)+zn(u,f)|0)>>>16|0)|0,h&=65535,a=a+(((zn(r,c)+zn(i,s)|0)+zn(e,f)|0)+zn(u,o)|0)|0,new de(l<<16|_,(a&=65535)<<16|h)}function Ce(n){return Me(),4294967296*n.v8_1+function(n){return Me(),n.u8_1>=0?n.u8_1:4294967296+n.u8_1}(n)}function xe(n,t){return Me(),n.v8_1===t.v8_1&&n.u8_1===t.u8_1}function je(n,t){if(Me(),t<2||36<t)throw vu("radix out of range: "+t);if(Se(n))return"0";if(Ie(n)){if(xe(n,pe())){var r=Pe(t),i=n.d9(r),e=qe(Be(i,r),n).g9();return je(i,t)+e.toString(t)}return"-"+je(Ee(n),t)}for(var u=2===t?31:t<=10?9:t<=21?7:t<=35?6:5,o=Le(Math.pow(t,u)),f=n,s="";;){var c=f.d9(o),a=qe(f,Be(c,o)).g9().toString(t);if(Se(f=c))return a+s;for(;a.length<u;)a="0"+a;s=a+s}}function Pe(n){return Me(),new de(n,n<0?-1:0)}function Ie(n){return Me(),n.v8_1<0}function Se(n){return Me(),0===n.v8_1&&0===n.u8_1}function ze(n){return Me(),!(1&~n.u8_1)}function Ee(n){return Me(),n.e9()}function Te(n,t){return Me(),ke(n,t)<0}function Le(n){if(Me(),(t=n)!=t)return ge();if(n<=-0x8000000000000000)return pe();if(n+1>=0x8000000000000000)return Me(),z;if(n<0)return Ee(Le(-n));var t,r=4294967296;return new de(n%r|0,n/r|0)}function Ne(n,t){return Me(),ke(n,t)>0}function Ae(n,t){return Me(),ke(n,t)>=0}function Me(){L||(L=!0,P=Pe(0),I=Pe(1),S=Pe(-1),z=new de(-1,2147483647),E=new de(0,-2147483648),T=Pe(16777216))}function Fe(n){return n instanceof de?n.g9():function(n){return n>2147483647?2147483647:n<-2147483648?-2147483648:0|n}(n)}function De(n){var t;return t=function(n){return n<<16>>16}(Fe(n)),function(n){return 65535&n}(t)}function Oe(n,t){return new Ht(n,t)}function Re(n,t,r,i){return He("class",n,t,r,i,null)}function He(n,t,r,i,e,u){return{kind:n,simpleName:t,associatedObjectKey:r,associatedObjects:i,suspendArity:e,$kClass$:A,iid:u}}function $e(n){return Array.isArray(n)}function Ge(n,t,r,i,e,u,o,f){null!=i&&(n.prototype=Object.create(i.prototype),n.prototype.constructor=n);var s=r(t,u,o,null==f?[]:f);n.$metadata$=s,null!=e&&((null!=s.iid?n:n.prototype).$imask$=function(n){for(var t=1,r=[],i=0,e=n.length;i<e;){var u=n[i];i=i+1|0;var o=t,f=u.prototype.$imask$,s=null==f?u.$imask$:f;null!=s&&(r.push(s),o=s.length);var c=u.$metadata$.iid,a=null==c?null:(l=void 0,v=1<<(31&(h=c)),(l=new Int32Array(1+(h>>5)|0))[_=h>>5]=l[_]|v,l);null!=a&&(r.push(a),o=Math.max(o,a.length)),o>t&&(t=o)}var h,l,_,v;return function(n,t){for(var r=0,i=new Int32Array(n);r<n;){for(var e=r,u=0,o=0,f=t.length;o<f;){var s=t[o];o=o+1|0,e<s.length&&(u|=s[e])}i[e]=u,r=r+1|0}return i}(t,r)}(e))}function Ue(n,t){return function(n,t){var r=n.$imask$;return null!=r&&function(n,t){var r=t>>5;if(r>n.length)return!1;var i=1<<(31&t);return!!(n[r]&i)}(r,t)}(n,t.$metadata$.iid)}function Ve(n){return!!$e(n)&&!n.$type$}function Qe(n){var t;switch(typeof n){case"string":case"number":case"boolean":case"function":t=!0;break;default:t=n instanceof Object}return t}function Ze(n){return"string"==typeof n||Ue(n,sr)}function Ye(n,t,r,i){return He("interface",n,t,r,i,(null==N&&(N=0),N=We()+1|0,We()))}function We(){if(null!=N)return N;!function(){throw Tu("lateinit property iid has not been initialized")}()}function Ke(n,t,r,i){return He("object",n,t,r,i,null)}function Xe(n){var t=n.constructor,r=null==t?null:t.$metadata$,i=null==r?null:r.errorInfo;if(null!=i)return i;var e,u=0;if(Je(n,"message")&&(u|=1),Je(n,"cause")&&(u|=2),3!==u){var o=(e=n,Object.getPrototypeOf(e));o!=Error.prototype&&(u|=Xe(o))}return null!=r&&(r.errorInfo=u),u}function Je(n,t){return n.hasOwnProperty(t)}function nu(n){return new Fr(n)}function tu(n,t,r){for(var i=new Int32Array(r),e=0,u=0,o=0,f=0,s=n.length;f<s;){var c=Zi(n,f);f=f+1|0;var a=t[c];if(u|=(31&a)<<o,a<32){var h=e;e=h+1|0,i[h]=u,u=0,o=0}else o=o+5|0}return i}function ru(n,t){for(var r=0,i=n.length-1|0,e=-1,u=0;r<=i;)if(t>(u=n[e=(r+i|0)/2|0]))r=e+1|0;else{if(t===u)return e;i=e-1|0}return e-(t<u?1:0)|0}function iu(){M=this;var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=new Int32Array(128),r=0,i=Wi(n)-1|0;if(r<=i)do{var e=r;r=r+1|0,t[Zi(n,e)]=e}while(r<=i);var u=tu("hCgBpCQGYHZH5BRpBPPPPPPRMP5BPPlCPP6BkEPPPPcPXPzBvBrB3BOiDoBHwD+E3DauCnFmBmB2D6E1BlBTiBmBlBP5BhBiBrBvBjBqBnBPRtBiCmCtBlB0BmB5BiB7BmBgEmChBZgCoEoGVpBSfRhBPqKQ2BwBYoFgB4CJuTiEvBuCuDrF5DgEgFlJ1DgFmBQtBsBRGsB+BPiBlD1EIjDPRPPPQPPPPPGQSQS/DxENVNU+B9zCwBwBPPCkDPNnBPqDYY1R8B7FkFgTgwGgwUwmBgKwBuBScmEP/BPPPPPPrBP8B7F1B/ErBqC6B7BiBmBfQsBUwCw/KwqIwLwETPcPjQgJxFgBlBsD",t,222),o=new Int32Array(u.length),f=0,s=u.length-1|0;if(f<=s)do{var c=f;f=f+1|0,o[c]=0===c?u[c]:o[c-1|0]+u[c]|0}while(f<=s);this.h9_1=o,this.i9_1=tu("aaMBXHYH5BRpBPPPPPPRMP5BPPlCPPzBDOOPPcPXPzBvBjB3BOhDmBBpB7DoDYxB+EiBP1DoExBkBQhBekBPmBgBhBctBiBMWOOXhCsBpBkBUV3Ba4BkB0DlCgBXgBtD4FSdBfPhBPpKP0BvBXjEQ2CGsT8DhBtCqDpFvD1D3E0IrD2EkBJrBDOBsB+BPiBlB1EIjDPPPPPPPPPPPGPPMNLsBNPNPKCvBvBPPCkDPBmBPhDXXgD4B6FzEgDguG9vUtkB9JcuBSckEP/BPPPPPPBPf4FrBjEhBpC3B5BKaWPrBOwCk/KsCuLqDHPbPxPsFtEaaqDL",t,222),this.j9_1=tu("GFjgggUHGGFFZZZmzpz5qB6s6020B60ptltB6smt2sB60mz22B1+vv+8BZZ5s2850BW5q1ymtB506smzBF3q1q1qB1q1q1+Bgii4wDTm74g3KiggxqM60q1q1Bq1o1q1BF1qlrqrBZ2q5wprBGFZWWZGHFsjiooLowgmOowjkwCkgoiIk7ligGogiioBkwkiYkzj2oNoi+sbkwj04DghhkQ8wgiYkgoioDsgnkwC4gikQ//v+85BkwvoIsgoyI4yguI0whiwEowri4CoghsJowgqYowgm4DkwgsY/nwnzPowhmYkg6wI8yggZswikwHgxgmIoxgqYkwgk4DkxgmIkgoioBsgssoBgzgyI8g9gL8g9kI0wgwJoxgkoC0wgioFkw/wI0w53iF4gioYowjmgBHGq1qkgwBF1q1q8qBHwghuIwghyKk0goQkwgoQk3goQHGFHkyg0pBgxj6IoinkxDswno7Ikwhz9Bo0gioB8z48Rwli0xN0mpjoX8w78pDwltoqKHFGGwwgsIHFH3q1q16BFHWFZ1q10q1B2qlwq1B1q10q1B2q1yq1B6q1gq1Biq1qhxBir1qp1Bqt1q1qB1g1q1+B//3q16B///q1qBH/qlqq9Bholqq9B1i00a1q10qD1op1HkwmigEigiy6Cptogq1Bixo1kDq7/j00B2qgoBWGFm1lz50B6s5q1+BGWhggzhwBFFhgk4//Bo2jigE8wguI8wguI8wgugUog1qoB4qjmIwwi2KgkYHHH4lBgiFWkgIWoghssMmz5smrBZ3q1y50B5sm7gzBtz1smzB5smz50BqzqtmzB5sgzqzBF2/9//5BowgoIwmnkzPkwgk4C8ys65BkgoqI0wgy6FghquZo2giY0ghiIsgh24B4ghsQ8QF/v1q1OFs0O8iCHHF1qggz/B8wg6Iznv+//B08QgohsjK0QGFk7hsQ4gB",t,222)}function eu(){return null==M&&new iu,M}function uu(){F=this,this.k9_1=new Int32Array([170,186,688,704,736,837,890,7468,7544,7579,8305,8319,8336,8560,9424,11388,42652,42864,43e3,43868]),this.l9_1=new Int32Array([1,1,9,2,5,1,1,63,1,37,1,1,13,16,26,2,2,1,2,4])}function ou(){return null==F&&new uu,F}function fu(n){var t=function(n,t){return wu(n,t),su.call(t),t}(n,ce(se(su)));return fe(t,fu),t}function su(){fe(this,su)}function cu(n){var t=function(n,t){return wu(n,t),au.call(t),t}(n,ce(se(au)));return fe(t,cu),t}function au(){fe(this,au)}function hu(n){var t=function(n,t){return wu(n,t),lu.call(t),t}(n,ce(se(lu)));return fe(t,hu),t}function lu(){fe(this,lu)}function _u(n,t){return ae(t,n),du.call(t),t}function vu(n){var t=_u(n,ce(se(du)));return fe(t,vu),t}function du(){fe(this,du)}function gu(n){return function(n){ae(n),du.call(n)}(n),bu.call(n),n}function wu(n,t){return _u(n,t),bu.call(t),t}function bu(){fe(this,bu)}function pu(){var n,t=(gu(n=ce(se(ku))),ku.call(n),n);return fe(t,pu),t}function mu(n){var t=function(n,t){return wu(n,t),ku.call(t),t}(n,ce(se(ku)));return fe(t,mu),t}function ku(){fe(this,ku)}function yu(n){var t=function(n,t){return wu(n,t),qu.call(t),t}(n,ce(se(qu)));return fe(t,yu),t}function qu(){fe(this,qu)}function Bu(){var n,t=(gu(n=ce(se(xu))),xu.call(n),n);return fe(t,Bu),t}function Cu(n){var t=function(n,t){return wu(n,t),xu.call(t),t}(n,ce(se(xu)));return fe(t,Cu),t}function xu(){fe(this,xu)}function ju(){var n,t=(gu(n=ce(se(Pu))),Pu.call(n),n);return fe(t,ju),t}function Pu(){fe(this,Pu)}function Iu(){var n,t=(gu(n=ce(se(Su))),Su.call(n),n);return fe(t,Iu),t}function Su(){fe(this,Su)}function zu(){var n,t=(gu(n=ce(se(Eu))),Eu.call(n),n);return fe(t,zu),t}function Eu(){fe(this,Eu)}function Tu(n){var t=function(n,t){return wu(n,t),Lu.call(t),t}(n,ce(se(Lu)));return fe(t,Tu),t}function Lu(){fe(this,Lu)}function Nu(n,t){var r,i=n.className;return(r="(^|.*\\s+)"+t+"($|\\s+.*)",function(n,t){return Bi.call(t,n,At()),t}(r,ce(se(Bi)))).a8(i)}function Au(n,t){this.o9_1=n,this.p9_1=t}function Mu(n){this.q9_1=n}function Fu(n,t,r){var i,e=Ff(),u=Wu(),o=Mf().ga(t),f=Wu();if(0===Wi(r))i=Lf();else{var s=n.ia_1,c=null==s?null:new Mu(s).v9(r,"Copy reference to the clipboard");i=null==c?Lf():c}return e.ja([u,o,f,i])}function Du(n){n=n===A?null:n,this.ia_1=n}function Ou(n,t,r){Yu.call(this),this.ma_1=n,this.na_1=t,this.oa_1=r}function Ru(n,t){this.ra_1=n,this.sa_1=t}function Hu(n,t){Yu.call(this),this.va_1=n,this.wa_1=t}function $u(n,t){Yu.call(this),this.xa_1=n,this.ya_1=t}function Gu(n){Yu.call(this),this.za_1=n}function Uu(n){Yu.call(this),this.ab_1=n}function Vu(n){Yu.call(this),this.bb_1=n}function Qu(n,t){Yu.call(this),this.cb_1=n,this.db_1=t}function Zu(n){Yu.call(this),this.eb_1=n}function Yu(){}function Wu(){return ro(),D}function Ku(){return ro(),O}function Xu(){return ro(),R}function Ju(){return ro(),H}function no(n){return ro(),Ff().fb(Jf(to),n)}function to(n){return ro(),n.gb(["invisible-text","text-for-copy"]),lr()}function ro(){$||($=!0,D=no("`"),O=no(" "),R=no("("),H=no(")"))}function io(n,t){Yu.call(this),this.hb_1=n,this.ib_1=t}function eo(n){Yu.call(this),this.jb_1=n}function uo(n,t){Yu.call(this),this.kb_1=n,this.lb_1=t}function oo(n){Yu.call(this),this.mb_1=n}function fo(n){Yu.call(this),this.nb_1=n}function so(n){Yu.call(this),this.ob_1=n}function co(n,t,r){Yu.call(this),this.pb_1=n,this.qb_1=t,this.rb_1=r}function ao(n){Yu.call(this),this.sb_1=n}function ho(n){Yu.call(this),this.tb_1=n}function lo(n){return n.xb_1.vb_1.k()}function _o(){if(Z)return lr();Z=!0,G=new ko("Inputs",0,"Build configuration inputs"),U=new ko("ByMessage",1,"Problems grouped by message"),V=new ko("ByLocation",2,"Problems grouped by location"),Q=new ko("IncompatibleTasks",3,"Incompatible tasks")}function vo(n){yc.call(this),this.yb_1=n}function go(n){yc.call(this),this.ac_1=n}function wo(n){yc.call(this),this.bc_1=n}function bo(n){yc.call(this),this.cc_1=n}function po(n){yo.call(this),this.dc_1=n}function mo(n,t,r,i,e,u,o,f){this.ec_1=n,this.fc_1=t,this.gc_1=r,this.hc_1=i,this.ic_1=e,this.jc_1=u,this.kc_1=o,this.lc_1=f}function ko(n,t,r){Di.call(this,n,t),this.qc_1=r}function yo(){Bc.call(this)}function qo(n,t){var r=Af(),i=Jf(Lo),e=Af().y9(Jf(No),[]),u=function(n,t){var r,i=Af(),e=Jf(Oo),u=Ff().ga("Learn more about the "),o=$f();return i.y9(e,[u,o.fb(Jf((r=t,function(n){return n.bd(r.tc_1),lr()})),t.sc_1),Ff().ga(".")])}(0,t.gc_1),o=Af().y9(Jf(Ao),[Co(0,t)]),f=Af();return r.y9(i,[e,u,o,f.y9(Jf(Mo),[Io(0,Ro(),t.lc_1,lo(t.jc_1)),Io(0,Ho(),t.lc_1,lo(t.hc_1)),Io(0,$o(),t.lc_1,lo(t.ic_1)),Io(0,Go(),t.lc_1,lo(t.kc_1))])])}function Bo(n,t){var r,i,e=Af(),u=Jf(Fo);switch(t.lc_1.q8_1){case 0:r=zo(0,t.jc_1,((i=function(n){return new wo(n)}).callableName="<init>",i));break;case 3:r=zo(0,t.kc_1,function(){var n=function(n){return new bo(n)};return n.callableName="<init>",n}());break;case 1:r=zo(0,t.hc_1,function(){var n=function(n){return new go(n)};return n.callableName="<init>",n}());break;case 2:r=zo(0,t.ic_1,function(){var n=function(n){return new vo(n)};return n.callableName="<init>",n}());break;default:le()}return e.y9(u,[r])}function Co(n,t){return Af().ja([Po(0,t),xo(0,t)])}function xo(n,t){for(var r=Af(),i=t.fc_1,e=Lr(),u=0,o=i.f();o.g();){var f=o.h(),s=u;u=s+1|0,jt(e,0===wr(s)?gr(jo(Vo(),f)):bt([Gf().ja([]),jo(Vo(),f)]))}return r.ha(e)}function jo(n,t){return Df().ja([Ic(t)])}function Po(n,t){return Nf().ja([jc().ka(t.ec_1)])}function Io(n,t,r,i){var e,u,o;return Af().y9(Jf((e=i,u=t,o=r,function(n){return n.t9("group-selector"),0===e?(n.t9("group-selector--disabled"),lr()):u.equals(o)?(n.t9("group-selector--active"),lr()):(n.u9(function(n){return function(t){return new po(n)}}(u)),lr()),lr()})),[Ff().rc(t.qc_1,[So(0,i)])])}function So(n,t){return Ff().y9(Jf(Do),[Ku(),Xu(),Ff().ga(""+t),Ju()])}function zo(n,t,r){return function(n,t,r){var i,e=Af(),u=Of();return e.ja([u.ha(ys(t,(i=r,function(n){var t,r=n.cd().ub_1;return r instanceof Hu?Nc(i,(Vo(),(t=function(n){return Eo(0,n)}).callableName="viewNode",t),n,r.va_1,r.wa_1,Cc()):r instanceof $u?Nc(i,function(){var n=function(n){return Eo(0,n)};return n.callableName="viewNode",n}(Vo()),n,r.xa_1,r.ya_1,xc()):r instanceof io?Nc(i,function(){var n=function(n){return Eo(0,n)};return n.callableName="viewNode",n}(Vo()),n,r.hb_1,r.ib_1,A,So(Vo(),n.cd().vb_1.k())):r instanceof Ou?Lc(i,n,r):Nc(i,function(){var n=function(n){return Eo(0,n)};return n.callableName="viewNode",n}(Vo()),n,r)})))])}(0,t.xb_1.uc().vc(),r)}function Eo(n,t){var r;return t instanceof eo?Sc((r=t,function(n){return n.ed("project "),n.fd(r.jb_1),lr()})):t instanceof co?Sc(function(n){return function(t){return t.ed(n.pb_1+" "),t.fd(n.qb_1),t.ed(" of "),t.fd(n.rb_1),lr()}}(t)):t instanceof so?Sc(function(n){return function(t){return t.ed("system property "),t.fd(n.ob_1),lr()}}(t)):t instanceof uo?Sc(function(n){return function(t){return t.ed("task "),t.fd(n.kb_1),t.ed(" of type "),t.fd(n.lb_1),lr()}}(t)):t instanceof fo?Sc(function(n){return function(t){return t.ed("bean of type "),t.fd(n.nb_1),lr()}}(t)):t instanceof ao?Sc(function(n){return function(t){return t.ed(n.sb_1),lr()}}(t)):t instanceof ho?Sc(function(n){return function(t){return t.ed("class "),t.fd(n.tb_1),lr()}}(t)):t instanceof Zu?Sc(function(n){return function(t){return t.ed(n.eb_1),lr()}}(t)):t instanceof Gu?Ic(t.za_1):t instanceof Qu?Qo(t):Ff().ga(ie(t))}function To(n){return n.t9("report-wrapper"),lr()}function Lo(n){return n.t9("header"),lr()}function No(n){return n.t9("gradle-logo"),lr()}function Ao(n){return n.t9("title"),lr()}function Mo(n){return n.t9("groups"),lr()}function Fo(n){return n.t9("content"),lr()}function Do(n){return n.t9("group-selector__count"),lr()}function Oo(n){return n.t9("learn-more"),lr()}function Ro(){return _o(),G}function Ho(){return _o(),U}function $o(){return _o(),V}function Go(){return _o(),Q}function Uo(){Y=this}function Vo(){return null==Y&&new Uo,Y}function Qo(n){var t;return $f().fb(Jf((t=n,function(n){return n.t9("documentation-button"),n.bd(t.cb_1),lr()})),n.db_1)}function Zo(n,t,r){this.kd_1=n,this.ld_1=t,this.md_1=r}function Yo(n,t,r){this.nd_1=n,this.od_1=t,this.pd_1=r}function Wo(n,t){for(var r=vf(n),i=t.trace,e=Nr(i.length),u=0,o=i.length;u<o;){var f,s=i[u];u=u+1|0,f=Jo(s),e.d(f)}return new Zo(t,r,e)}function Ko(n,t){var r,i=null==(r=t.kd_1.error)?null:nf(r);null==i||n.d(i)}function Xo(n){return function(n,t,r){var i=null==n.error?null:new Hu(t,r);return null==i?new $u(t,r):i}(n.kd_1,new Gu(n.ld_1),ef(n.kd_1))}function Jo(n){var t;switch(n.kind){case"Project":t=new eo(n.path);break;case"Task":t=new uo(n.path,n.type);break;case"TaskPath":t=new oo(n.path);break;case"Bean":t=new fo(n.type);break;case"Field":t=new co("field",n.name,n.declaringType);break;case"InputProperty":t=new co("input property",n.name,n.task);break;case"OutputProperty":t=new co("output property",n.name,n.task);break;case"SystemProperty":t=new so(n.name);break;case"PropertyUsage":t=new co("property",n.name,n.from);break;case"BuildLogic":t=new ao(n.location);break;case"BuildLogicClass":t=new ho(n.type);break;default:t=new Zu("Gradle runtime")}return t}function nf(n){var t=n.parts;if(null==t){var r=n.summary;return null==r?null:new Gu(vf(r))}for(var i=n.summary,e=null==i?null:vf(i),u=Lr(),o=Ri(t);o.g();){var f=rf(o.h());null==f||u.d(f)}for(var s=Mn(u,"\n"),c=Lr(),a=Ri(t);a.g();){var h=tf(a.h());null==h||c.d(h)}return new Ou(e,s,c)}function tf(n){var t=rf(n);if(null==t)return null;var r,i,e=nt(new Nt(function(n,t,r,i){var e;return Jn(nr(n,["\r\n","\n","\r"],A,r=r!==A&&r,i=i===A?0:i),(e=n,function(n){return Jt(e,n)}))}(t),!0,lf));return new Ru(e,(r=!(null==n.internalText),i=e.k(),r&&i>1?ps():null))}function rf(n){var t=n.text;return null==t?n.internalText:t}function ef(n){var t=n.documentationLink;return null==t?null:new Qu(t,"")}function uf(n,t){return new cs(of(n,jf().sd(t),ps()))}function of(n,t,r){return new ks(n,function(n,t){var r,i=Jn(On(n.o()),If);return nt(Jn(new rt(i,new ff(_f)),(r=t,function(n){return of(n.v3(),n.w3().wd_1,r)})))}(t,1===Pf(t)?ms():ps()),0===Pf(t)?ps():r)}function ff(n){this.td_1=n}function sf(n){var t=Lr(),r=n.ld_1,i=Dn(r.ca_1).fa_1,e=ie(Xt(Ze(i)?i:_e())),u=r.vd(function(n,t){var r;if(!(t>=0))throw fu(ie("Requested element count "+t+" is less than zero."));if(0===t)return Rn(n);if(Ue(n,Ti)){var i=n.k()-t|0;if(i<=0)return pt();if(1===i)return gr(function(n){if(Ue(n,Ei))return Qn(n);var t=n.f();if(!t.g())throw mu("Collection is empty.");for(var r=t.h();t.g();)r=t.h();return r}(n));if(r=Nr(),Ue(n,Ei)){if(Ue(n,li)){var e=t,u=n.k();if(e<u)do{var o=e;e=e+1|0,r.d(n.j(o))}while(e<u)}else for(var f=n.l(t);f.g();){var s=f.h();r.d(s)}return r}}else r=Lr();for(var c=0,a=n.f();a.g();){var h=a.h();c>=t?r.d(h):c=c+1|0}return mt(r)}(r.ca_1,1));return t.d(new io(new Zu(e),ef(n.kd_1))),t.d(new Gu(u)),t.m(n.md_1),t.j5()}function cf(n){var t=Lr(),r=n.ld_1,i=r.vd(r.ca_1);return t.d(new $u(new Gu(i),ef(n.kd_1))),t.j5()}function af(n){var t=Lr();return t.d(Xo(n)),t.m(n.md_1),Ko(t,n),t.j5()}function hf(n){var t=Lr();return t.m(new St(n.md_1)),t.d(Xo(n)),Ko(t,n),t.j5()}function lf(n){return Wi(n)>0}function _f(n,t){return function(n,t){return n===t?0:null==n?-1:null==t?1:Ji(null!=n&&("string"==(i=typeof(r=n))||"boolean"===i||function(n){return"number"==typeof n||n instanceof de}(r)||Ue(r,cr))?n:_e(),t);var r,i}(Oi(n.v3()),Oi(t.v3()))}function vf(n){var t;return Bf().qd((t=n,function(n){for(var r=t,i=0,e=r.length;i<e;){var u=r[i];i=i+1|0;var o=u.text;null==o||n.ed(o);var f=u.name;null==f||(n.fd(f),lr())}return lr()}))}function df(n,t){return(0!==(r=n)?r.toString():"No")+" "+gf(t,n)+" "+wf(n)+" found";var r}function gf(n,t){return t<2?n:n+"s"}function wf(n){return n<=1?"was":"were"}function bf(n,t){this.sc_1=n,this.tc_1=t}function pf(n){kf.call(this),this.fa_1=n}function mf(n,t){kf.call(this),this.da_1=n,this.ea_1=t}function kf(){}function yf(){this.dd_1=Lr()}function qf(){W=this}function Bf(){return null==W&&new qf,W}function Cf(n){Bf(),this.ca_1=n}function xf(){K=this}function jf(){return null==K&&new xf,K}function Pf(n){return n.k()}function If(n){var t=n.j1(),r=n.i1();return fr(t,new Sf(Ue(r,Ni)?r:_e()))}function Sf(n){jf(),this.wd_1=n}function zf(n,t,r){var i;Tf(t,n,r),i="Component mounted at #"+n.id+".",wi(),(wi(),g).j7(i)}function Ef(n){var t=document.getElementById(n);if(null==t)throw hu("'"+n+"' element missing");return t}function Tf(n,t,r){var i,e,u;i=n.z9(r),e=t,u=function(n,t,r){return function(i){return Tf(n,r,n.ba(i,t)),lr()}}(n,r,t),fs(),e.innerHTML="",us(e,i,u)}function Lf(){return fs(),X}function Nf(){return fs(),J}function Af(){return fs(),nn}function Mf(){return fs(),tn}function Ff(){return fs(),rn}function Df(){return fs(),en}function Of(){return fs(),un}function Rf(){return fs(),on}function Hf(){return fs(),fn}function $f(){return fs(),sn}function Gf(){return fs(),cn}function Uf(n){this.x9_1=n}function Vf(){an=this}function Qf(){return null==an&&new Vf,an}function Zf(){hn=this,Xf.call(this)}function Yf(){return null==hn&&new Zf,hn}function Wf(n,t,r,i){t=t===A?pt():t,r=r===A?null:r,i=i===A?pt():i,Xf.call(this),this.be_1=n,this.ce_1=t,this.de_1=r,this.ee_1=i}function Kf(){}function Xf(){Qf()}function Jf(n){fs();var t,r=Lr();return n(new ns((t=r,function(n){return t.d(n),lr()}))),r}function ns(n){this.r9_1=n}function ts(n,t){es.call(this),this.fe_1=n,this.ge_1=t}function rs(n){es.call(this),this.he_1=n}function is(n,t){es.call(this),this.ie_1=n,this.je_1=t}function es(){}function us(n,t,r){if(fs(),t instanceof Wf)!function(n,t,r){var i=function(n,t,r){var i=n.createElement(t);return r(i),i}(he(n.ownerDocument),t,r);n.appendChild(i)}(n,t.be_1,(e=t,u=r,function(n){for(var t=e.ce_1.f();t.g();)os(n,t.h(),u);var r=e.de_1;null==r||function(n,t){n.appendChild(he(n.ownerDocument).createTextNode(t))}(n,r);for(var i=e.ee_1.f();i.g();)us(n,i.h(),u);return lr()}));else if(t instanceof Kf){var i=t instanceof Kf?t:_e();us(n,i.ke_1,function(n,t){return function(r){return n(t.le_1(r)),lr()}}(r,i))}else if(oe(t,Yf()))return lr();var e,u}function os(n,t,r){var i,e;fs(),t instanceof is?n.setAttribute(t.ie_1,t.je_1):t instanceof rs?function(n,t){for(var r=Lr(),i=0,e=t.length;i<e;){var u=t[i];i=i+1|0,Nu(n,u)||r.d(u)}var o=r;if(!o.i()){var f=n.className,s=ie(Xt(Ze(f)?f:_e())),c=bi();c.p7(s),0!==Wi(s)&&c.p7(" "),Fn(o,c," "),n.className=c.toString()}}(n,[t.he_1]):t instanceof ts&&n.addEventListener(t.fe_1,(i=r,e=t,function(n){return n.stopPropagation(),i(e.ge_1(n)),lr()}))}function fs(){ln||(ln=!0,X=Yf(),new Uf("hr"),J=new Uf("h1"),new Uf("h2"),nn=new Uf("div"),new Uf("pre"),tn=new Uf("code"),rn=new Uf("span"),en=new Uf("small"),un=new Uf("ol"),on=new Uf("ul"),fn=new Uf("li"),sn=new Uf("a"),cn=new Uf("br"),new Uf("p"))}function ss(n){as.call(this),this.ne_1=n}function cs(n){this.xb_1=n}function as(){}function hs(n){return n.me(A,A,n.wb_1.ad())}function ls(){_n=this}function _s(){return null==_n&&new ls,_n}function vs(){if(gn)return lr();gn=!0,vn=new ws("Collapsed",0),dn=new ws("Expanded",1)}function ds(n){bs.call(this),this.ve_1=n}function gs(n,t,r){bs.call(this),this.se_1=n,this.te_1=t,this.ue_1=r}function ws(n,t){Di.call(this,n,t)}function bs(){}function ps(){return vs(),vn}function ms(){return vs(),dn}function ks(n,t,r){t=t===A?pt():t,r=r===A?ps():r,this.ub_1=n,this.vb_1=t,this.wb_1=r}function ys(n,t){return nt(Jn(n,(r=t,function(n){return function(n,t){var r,i=n.cd(),e=Hf(),u=t(n),o=i.vb_1;r=null==(i.wb_1.equals(ms())&&!o.i()?o:null)?null:function(n,t){return Rf().ha(function(n,t){return ys(n.vc(),t)}(n,t))}(n,t);var f=r;return e.ja([u,null==f?Lf():f])}(n,r)})));var r}function qs(){if(kn)return lr();kn=!0,bn=new Bs("ByMessage",0,"Messages"),pn=new Bs("ByGroup",1,"Group"),mn=new Bs("ByFileLocation",2,"Locations")}function Bs(n,t,r){Di.call(this,n,t),this.cf_1=r}function Cs(n,t){this.df_1=n,this.ef_1=t}function xs(n,t){this.ff_1=n,this.gf_1=t}function js(n){return new ks(new Gu(Bf().rd(n+" more problem"+(n>1?"s have":" has")+" been skipped")))}function Ps(n,t,r,i){var e,u,o=n.v1(t);if(null==o){var f=Lr(),s=fr(new ks(new Vs(Bf().qd((u=t,function(n){return n.fd(u),lr()}))),f,ms()),f);n.h5(t,s),e=s}else e=o;e.u3_1.d(Es(r,i))}function Is(n,t,r,i){var e;if(t=t===A?Lr():t,r=r===A?oi():r,i===A){var u=wn;wn=u+1|0,e=u}else e=i;i=e,this.hf_1=n,this.if_1=t,this.jf_1=r,this.kf_1=i}function Ss(n,t){if(t.i())return null;for(var r,i=n,e=null,u=t.f();u.g();){var o=u.h();r=e;var f,s=i,c=o.ef_1+" ("+o.df_1+")",a=s.v1(c);if(null==a){var h=Lr(),l=new Is(new ks(new Vs(Bf().qd(Fs(o))),h,ms()),h);s.h5(c,l),f=l}else f=a;e=f,null==r||he(r).if_1.u(he(e).hf_1)||he(r).if_1.d(he(e).hf_1),i=he(e).jf_1}return e}function zs(n,t){if(n.k()===t.length){var r;n:{var i=function(n,t){var r=t.length,i=xt(n,10),e=Nr(Math.min(i,r)),u=0,o=n.f();t:for(;o.g();){var f,s=o.h();if(u>=r)break t;var c=u;u=c+1|0,f=fr(s,t[c]),e.d(f)}return e}(n,t);if(Ue(i,Ti)&&i.i())r=!0;else{for(var e=i.f();e.g();){var u=e.h();if(u.t3_1.df_1!==u.u3_1.name||u.t3_1.ef_1!==u.u3_1.displayName){r=!1;break n}}r=!0}}return r}return!1}function Es(n,t,r){var i=function(n,t,r){t=t===A?null:t;var i=Ns(function(n,t){return n&&null!=t.contextualLabel?he(t.contextualLabel):Ts(t)}(r=r!==A&&r,n),t).j5();return Ls(n,new Gu(i))}(n,t=t===A?null:t,r=r!==A&&r),e=function(n,t,r){r=r!==A&&r;var i,e=n.problemDetails;if(null==e)i=null;else{var u,o=e[0].text,f=null==o?null:function(n,t,r,i){if(r=r!==A&&r,i=i===A?0:i,1===t.length){var e=t[0];if(0!==Wi(e))return function(n,t,r,i){rr(i);var e=0,u=Wt(n,t,e,r);if(-1===u||1===i)return gr(ie(n));var o,f=i>0,s=Nr(f&&Kn(i,10));n:do{var c;if(c=ie(Ki(n,e,u)),s.d(c),e=u+t.length|0,f&&s.k()===(i-1|0))break n;u=Wt(n,t,e,r)}while(-1!==u);return o=ie(Ki(n,e,Wi(n))),s.d(o),s}(n,e,r,i)}for(var u=function(n){return new tt(n)}(nr(n,t,A,r,i)),o=Nr(xt(u,10)),f=u.f();f.g();){var s;s=Jt(n,f.h()),o.d(s)}return o}(o,["\n"]);if(null==f)u=null;else{for(var s=Nr(xt(f,10)),c=f.f();c.g();){var a,h=c.h();a=Ms(n)?Bf().qd(Os(h)):Bf().rd(h),s.d(a)}u=s}var l,_=u;if(null==_)l=null;else{for(var v=Nr(xt(_,10)),d=_.f();d.g();){var g;g=new ks(new Gu(d.h())),v.d(g)}l=v}var w=null==l?null:Hn(l);i=null==w?Lr():w}var b=i,p=null==b?Lr():b;r||null==n.contextualLabel||p.d(new ks(new Gu(Bf().rd(he(n.contextualLabel)))));var m=function(n){var t=n.solutions;if(null==t||0===t.length)return null;for(var r=new Vu(Bf().rd("Solutions")),i=he(n.solutions),e=Nr(i.length),u=0,o=i.length;u<o;){var f,s=i[u];u=u+1|0,f=new ks(new Uu(vf(s))),e.d(f)}return new ks(r,e)}(n);null==m||p.d(m);var k,y=n.error,q=null==y?null:nf(y);if(null==q||p.d(new ks(q)),t){var B=n.locations;k=!(null==B||0===B.length)}else k=!1;return k&&p.d(function(n){var t,r=n.locations;if(null==r)t=null;else{for(var i=Nr(r.length),e=Ri(r);e.g();){var u,o=e.h();u=new ks(new Gu(Bf().qd(Rs(o)))),i.d(u)}t=i}var f=t;return new ks(new Zu("Locations"),null==f?pt():f)}(n)),p}(n,null==t,r);return new ks(i,e)}function Ts(n){return function(n){if(0===n.length)throw mu("Array is empty.");return n[Nn(n)]}(n.problemId).displayName}function Ls(n,t){var r;switch(n.severity){case"WARNING":var i=n.documentationLink;r=new $u(t,null==i?null:new Qu(i,""));break;case"ERROR":var e=n.documentationLink;r=new Hu(t,null==e?null:new Qu(e,""));break;case"ADVICE":var u=n.documentationLink;r=new Qs(t,null==u?null:new Qu(u,""));break;default:console.error("no severity "+n.severity),r=t}return r}function Ns(n,t){t=t===A?null:t;var r,i=new yf;if(i.ed(n),null==t);else{if(null!=t.line){var e=As(t);i.xd(e+(null==(r=t).line||null==r.length?"":"-"+r.length),""+t.path+e)}var u=t.taskPath;null==u||i.fd(u);var o=t.pluginId;null!=o&&i.fd(o)}return i}function As(n){var t;if(null==n.line)t=null;else{var r,i=":"+n.line,e=n.column;t=i+(null==(r=null==e?null:":"+e)?"":r)}return null==t?"":t}function Ms(n){var t,r,i=n.problemId;n:{for(var e=0,u=i.length;e<u;){var o=i[e];if(e=e+1|0,"compilation"===o.name){r=o;break n}}r=null}if(null!=r){var f,s=n.problemId;n:{for(var c=0,a=s.length;c<a;){var h=s[c];if(c=c+1|0,"java"===h.name){f=h;break n}}f=null}t=!(null==f)}else t=!1;return t}function Fs(n){return function(t){return t.ed(n.ef_1),t.fd(n.df_1),lr()}}function Ds(n){return n.name}function Os(n){return function(t){return t.xd(function(n,t,r,i){i=i!==A&&i;var e=new RegExp(qi().t7(" "),i?"gui":"gu"),u=qi().u7(" ");return n.replace(e,u)}(n),""),lr()}}function Rs(n){return function(t){return t.ed("- "),t.fd(""+n.path+As(n)),lr()}}function Hs(){return qs(),bn}function $s(){return qs(),pn}function Gs(){return qs(),mn}function Us(n){Zs.call(this),this.lf_1=n}function Vs(n,t){t=t!==A&&t,Zs.call(this),this.mf_1=n,this.nf_1=t}function Qs(n,t){t=t===A?null:t,Yu.call(this),this.of_1=n,this.pf_1=t}function Zs(){Yu.call(this)}function Ys(n){yc.call(this),this.qf_1=n}function Ws(n){yc.call(this),this.rf_1=n}function Ks(n){yc.call(this),this.sf_1=n}function Xs(n){nc.call(this),this.tf_1=n}function Js(n,t,r,i,e,u,o,f){this.uf_1=n,this.vf_1=t,this.wf_1=r,this.xf_1=i,this.yf_1=e,this.zf_1=u,this.ag_1=o,this.bg_1=f}function nc(){Bc.call(this)}function tc(n,t){var r=Lr();lo(t.xf_1)>0&&r.d(fc(0,Hs(),t.bg_1,t.ag_1)),lo(t.yf_1)>0&&r.d(fc(0,$s(),t.bg_1,t.ag_1)),lo(t.zf_1)>0&&r.d(fc(0,Gs(),t.bg_1,t.ag_1));var i=Af(),e=Jf(hc),u=Af().y9(Jf(lc),[]),o=function(n,t){var r,i=Af(),e=Jf(wc),u=Ff().ga("Learn more about "),o=$f();return i.y9(e,[u,o.fb(Jf((r=t,function(n){return n.bd(r.tc_1),lr()})),t.sc_1),Ff().ga(".")])}(0,t.wf_1),f=Af().y9(Jf(_c),[ic(0,t)]),s=Af();return i.y9(e,[u,o,f,s.zd(Jf(vc),r)])}function rc(n,t){var r,i,e=Af(),u=Jf(dc);switch(t.bg_1.q8_1){case 0:r=sc(0,t.xf_1,((i=function(n){return new Ys(n)}).callableName="<init>",i));break;case 1:r=sc(0,t.yf_1,function(){var n=function(n){return new Ws(n)};return n.callableName="<init>",n}());break;case 2:r=sc(0,t.zf_1,function(){var n=function(n){return new Ks(n)};return n.callableName="<init>",n}());break;default:le()}return e.y9(u,[r])}function ic(n,t){return Af().ja([oc(0,t),ec(0,t)])}function ec(n,t){for(var r=Af(),i=t.vf_1,e=Lr(),u=0,o=i.f();o.g();){var f=o.h(),s=u;u=s+1|0,jt(e,0===wr(s)?gr(uc(pc(),f)):bt([Gf().ja([]),uc(pc(),f)]))}return r.ha(e)}function uc(n,t){return Df().ja([Ic(t)])}function oc(n,t){return Nf().ja([jc().ka(t.uf_1)])}function fc(n,t,r,i){var e,u,o,f;return Af().y9(Jf((e=i,u=t,o=r,function(n){return n.t9("group-selector"),0===e?(n.t9("group-selector--disabled"),lr()):u.equals(o)?(n.t9("group-selector--active"),lr()):(n.u9(function(n){return function(t){return new Xs(n)}}(u)),lr()),lr()})),[Ff().rc(t.cf_1,[(f=i,Ff().y9(Jf(gc),[Ku(),Xu(),Ff().ga(""+f),Ju()]))])])}function sc(n,t,r){return function(n,t,r){var i,e=Af(),u=Of();return e.ja([u.ha(ys(t,(i=r,function(n){return function(n,t,r,i){var e,u;return t instanceof Us?Ic(Bf().rd(t.lf_1)):t instanceof Vs?Af().y9(Jf((u=t,function(n){return u.nf_1&&(n.t9("uncategorized"),lr()),lr()})),[Af().ja([zc(r,i),Ic(t.mf_1)])]):t instanceof Ou?Lc(i,r,t):t instanceof Gu?Ic(t.za_1):t instanceof Uu?Af().ja([(Vc(),xn),Ic(t.ab_1)]):t instanceof Vu?Af().ja([zc(r,i),Ic(t.bb_1)]):t instanceof Hu?Nc(i,((e=function(n){return cc(0,n)}).callableName="viewIt",e),r,t.va_1,t.wa_1,Cc()):t instanceof Qs?Nc(i,function(){var n=function(n){return cc(0,n)};return n.callableName="viewIt",n}(),r,t.of_1,t.pf_1,(Vc(),Bn)):t instanceof $u?Nc(i,function(){var n=function(n){return cc(0,n)};return n.callableName="viewIt",n}(),r,t.xa_1,t.ya_1,xc()):t instanceof Zu?Af().ja([zc(r,i),Ic(Bf().rd(t.eb_1))]):Ff().ga("Unknown node type viewNode: "+t)}(pc(),n.cd().ub_1,n,i)})))])}(0,t.xb_1.uc().vc(),r)}function cc(n,t){var r;if(t instanceof Qu)r=Qo(t);else if(t instanceof Zu)r=Ic(Bf().rd(t.eb_1));else if(t instanceof Gu)r=Ic(t.za_1);else{var i="Unknown node type viewIt: "+t;console.error(i),r=Ff().ga(i)}return r}function ac(n){return n.t9("report-wrapper"),lr()}function hc(n){return n.t9("header"),lr()}function lc(n){return n.t9("gradle-logo"),lr()}function _c(n){return n.t9("title"),lr()}function vc(n){return n.t9("groups"),lr()}function dc(n){return n.t9("content"),lr()}function gc(n){return n.t9("group-selector__count"),lr()}function wc(n){return n.t9("learn-more"),lr()}function bc(){yn=this,document.title="Gradle - Problems Report"}function pc(){return null==yn&&new bc,yn}function mc(n,t,r){return n.pe(t.zb().oe(),r)}function kc(n){Bc.call(this),this.hd_1=n}function yc(){Bc.call(this)}function qc(n,t){Bc.call(this),this.wc_1=n,this.xc_1=t}function Bc(){}function Cc(){return Vc(),qn}function xc(){return Vc(),Cn}function jc(){return Vc(),jn}function Pc(){return Vc(),Pn}function Ic(n){return Vc(),Pc().ka(n)}function Sc(n){return Vc(),Pc().ka(Bf().qd(n))}function zc(n,t){return Vc(),n.cd().ye()?Ac(n,t):function(n){return Vc(),Ff().fb(Jf(Gc),Mc(n))}(n)}function Ec(n,t,r,i){var e,u,o;return Vc(),Ff().fb(Jf((e=r,u=t,o=i,function(n){return n.t9("java-exception-part-toggle"),n.u9(function(n,t){return function(r){return new qc(n,t())}}(u,o)),n.s9("Click to "+function(n){var t;switch(Vc(),n.q8_1){case 0:t="show";break;case 1:t="hide";break;default:le()}return t}(e)),lr()})),"("+n+" internal "+gf("line",n)+" "+function(n){var t;switch(Vc(),n.q8_1){case 0:t="hidden";break;case 1:t="shown";break;default:le()}return t}(r)+")")}function Tc(n,t){t=t===A?Lf():t,Vc();for(var r=Rf(),i=Nr(xt(n,10)),e=0,u=n.f();u.g();){var o,f=e;e=f+1|0,s=u.h(),c=(c=0===wr(f)?t:Lf())===A?Lf():c,Vc(),o=Hf().ja([Mf().ga(s),c]),i.d(o)}var s,c;return r.ha(i)}function Lc(n,t,r){Vc();var i,e,u,o=Af(),f=Ac(t,n),s=Ff().ga("Exception"),c=Ff().ja([(Vc(),In).v9(r.na_1,"Copy exception to the clipboard")]),a=null==r.ma_1?null:Ff().ga(" "),h=null==a?Lf():a,l=r.ma_1,_=null==l?null:Ic(l),v=null==_?Lf():_;switch(t.cd().wb_1.q8_1){case 0:i=Lf();break;case 1:i=function(n,t){Vc();for(var r=Af(),i=Jf(Uc),e=n.oa_1,u=Nr(xt(e,10)),o=0,f=e.f();f.g();){var s,c=f.h(),a=o;o=a+1|0;var h,l=wr(a);if(null!=c.sa_1){var _,v=Ec(c.ra_1.k(),l,c.sa_1,t),d=c.sa_1;switch(null==d?-1:d.q8_1){case 0:_=Tc(Un(c.ra_1,1),v);break;case 1:_=Tc(c.ra_1,v);break;default:le()}h=_}else h=Tc(c.ra_1);s=h,u.d(s)}return r.zd(i,u)}(r,(e=n,u=t,function(){return e(new ss(u))}));break;default:le()}return o.ja([f,s,c,h,v,i])}function Nc(n,t,r,i,e,u,o){e=e===A?null:e,u=u===A?Lf():u,o=o===A?Lf():o,Vc();var f=Af(),s=zc(r,n),c=t(i),a=null==e?null:t(e);return f.ja([s,u,c,null==a?Lf():a,o])}function Ac(n,t){var r,i;return Vc(),Ff().fb(Jf((r=n,i=t,function(n){return n.gb(["invisible-text","tree-btn"]),r.cd().wb_1===ps()&&(n.t9("collapsed"),lr()),r.cd().wb_1===ms()&&(n.t9("expanded"),lr()),n.s9("Click to "+function(n){var t;switch(Vc(),n.q8_1){case 0:t="expand";break;case 1:t="collapse";break;default:le()}return t}(r.cd().wb_1)),n.u9(function(n,t){return function(r){return n(new ss(t))}}(i,r)),lr()})),Mc(n))}function Mc(n){return Vc(),function(n,t){var r;if(!(t>=0))throw fu(ie("Count 'n' must be non-negative, but was "+t+"."));switch(t){case 0:r="";break;case 1:r=ie(n);break;default:var i="";if(0!==Wi(n))for(var e=ie(n),u=t;1&~u||(i+=e),0!=(u=u>>>1|0);)e+=e;return i}return r}("    ",n.we()-1|0)+"- "}function Fc(n){return Vc(),n.gb(["invisible-text","error-icon"]),lr()}function Dc(n){return Vc(),n.gb(["invisible-text","advice-icon"]),lr()}function Oc(n){return Vc(),n.gb(["invisible-text","warning-icon"]),lr()}function Rc(n){return Vc(),n.gb(["invisible-text","enum-icon"]),lr()}function Hc(n){return Vc(),new kc(n)}function $c(n){return Vc(),new kc(n)}function Gc(n){return Vc(),n.gb(["invisible-text","leaf-icon"]),lr()}function Uc(n){return Vc(),n.t9("java-exception"),lr()}function Vc(){if(!Sn){Sn=!0;var n=Ff();qn=n.fb(Jf(Fc),"[error] ");var t=Ff();Bn=t.fb(Jf(Dc),"[advice] ");var r=Ff();Cn=r.fb(Jf(Oc),"[warn]  ");var i=Ff();xn=i.fb(Jf(Rc),"[enum]  "),jn=new Du,Pn=new Du(Hc),In=new Mu($c)}}return Ge(Yn,A,Re),Ge(tt,A,Re),Ge(rt,A,Re),Ge(Ti,"Collection",Ye),Ge(it,"AbstractCollection",Re,A,[Ti]),Ge(et,"IteratorImpl",Re),Ge(ut,"ListIteratorImpl",Re,et),Ge(ot,"Companion",Ke),Ge(Ei,"List",Ye,A,[Ti]),Ge(st,"AbstractList",Re,it,[it,Ei]),Ge(ct,A,Re),Ge(lt,"Companion",Ke),Ge(vt,A,Re,it),Ge(Ni,"Map",Ye),Ge(dt,"AbstractMap",Re,A,[Ni]),Ge(gt,"Companion",Ke),Ge(li,"RandomAccess",Ye),Ge(yt,"EmptyList",Ke,A,[Ei,li]),Ge(qt,"ArrayAsCollection",Re,A,[Ti]),Ge(Bt,"EmptyIterator",Ke),Ge(Pt,"IntIterator",Re),Ge(It,A,Re),Ge(St,"ReversedListReadOnly",Re,st),Ge(zt,A,Re),Ge(Et,"TransformingSequence",Re),Ge(Lt,A,Re),Ge(Nt,"FilteringSequence",Re),Ge(Mi,"Set",Ye,A,[Ti]),Ge(Mt,"EmptySet",Ke,A,[Mi]),Ge(Ot,"Companion",Ke),Ge(Vt,"IntProgression",Re),Ge(Ht,"IntRange",Re,Vt),Ge($t,"IntProgressionIterator",Re,Pt),Ge(Gt,"Companion",Ke),Ge(er,A,Re),Ge(ur,"DelimitedRangesSequence",Re),Ge(or,"Pair",Re),Ge(sr,"CharSequence",Ye),Ge(cr,"Comparable",Ye),Ge(ar,"Number",Re),Ge(hr,"Unit",Ke),Ge(_r,"IntCompanionObject",Ke),Ge(mr,"AbstractMutableCollection",Re,it,[it,Ti]),Ge(kr,"IteratorImpl",Re),Ge(yr,"ListIteratorImpl",Re,kr),Ge(qr,"AbstractMutableList",Re,mr,[mr,Ti,Ei]),Ge(Br,A,Re),Ge(Cr,A,Re),Ge(Li,"Entry",Ye),Ge(Ai,"MutableEntry",Ye,A,[Li]),Ge(xr,"SimpleEntry",Re,A,[Ai]),Ge(zr,"AbstractMutableSet",Re,mr,[mr,Mi,Ti]),Ge(jr,"AbstractEntrySet",Re,zr),Ge(Pr,A,Re,zr),Ge(Ir,A,Re,mr),Ge(Sr,"AbstractMutableMap",Re,dt,[dt,Ni]),Ge(Er,"Companion",Ke),Ge(Fr,"ArrayList",Re,qr,[qr,Ti,Ei,li]),Ge(Rr,"HashCode",Ke),Ge(Hr,"EntrySet",Re,jr),Ge(Vr,"HashMap",Re,Sr,[Sr,Ni]),Ge(Zr,"HashSet",Re,zr,[zr,Mi,Ti]),Ge(Xr,A,Re),Ge(ni,"InternalMap",Ye),Ge(Jr,"InternalHashCodeMap",Re,A,[ni]),Ge(ti,"EntryIterator",Re),Ge(ri,"Companion",Ke),Ge(ei,"ChainEntry",Re,xr),Ge(ui,"EntrySet",Re,jr),Ge(si,"LinkedHashMap",Re,Vr,[Vr,Ni]),Ge(ci,"Companion",Ke),Ge(hi,"LinkedHashSet",Re,Zr,[Zr,Mi,Ti]),Ge(_i,"BaseOutput",Re),Ge(vi,"NodeJsOutput",Re,_i),Ge(gi,"BufferedOutput",Re,_i),Ge(di,"BufferedOutputToConsoleLog",Re,gi),Ge(pi,"StringBuilder",Re,A,[sr]),Ge(yi,"Companion",Ke),Ge(Bi,"Regex",Re),Ge(Ii,"Companion",Ke),Ge(zi,"Char",Re,A,[cr]),Ge(Fi,"Companion",Ke),Ge(Di,"Enum",Re,A,[cr]),Ge(Hi,A,Re),Ge(ve,"Companion",Ke),Ge(de,"Long",Re,ar,[ar,cr]),Ge(iu,"Letter",Ke),Ge(uu,"OtherLowercase",Ke),Ge(du,"Exception",Re,Error),Ge(bu,"RuntimeException",Re,du),Ge(su,"IllegalArgumentException",Re,bu),Ge(au,"IndexOutOfBoundsException",Re,bu),Ge(lu,"IllegalStateException",Re,bu),Ge(ku,"NoSuchElementException",Re,bu),Ge(qu,"ArithmeticException",Re,bu),Ge(xu,"UnsupportedOperationException",Re,bu),Ge(Pu,"NullPointerException",Re,bu),Ge(Su,"NoWhenBranchMatchedException",Re,bu),Ge(Eu,"ClassCastException",Re,bu),Ge(Lu,"UninitializedPropertyAccessException",Re,bu),Ge(Au,"Model",Re),Ge(Mu,"CopyButtonComponent",Re),Ge(Du,"PrettyTextComponent",Re),Ge(Yu,"ProblemNode",Re),Ge(Ou,"Exception",Re,Yu),Ge(Ru,"StackTracePart",Re),Ge(Hu,"Error",Re,Yu),Ge($u,"Warning",Re,Yu),Ge(Gu,"Message",Re,Yu),Ge(Uu,"ListElement",Re,Yu),Ge(Vu,"TreeNode",Re,Yu),Ge(Qu,"Link",Re,Yu),Ge(Zu,"Label",Re,Yu),Ge(io,"Info",Re,Yu),Ge(eo,"Project",Re,Yu),Ge(uo,"Task",Re,Yu),Ge(oo,"TaskPath",Re,Yu),Ge(fo,"Bean",Re,Yu),Ge(so,"SystemProperty",Re,Yu),Ge(co,"Property",Re,Yu),Ge(ao,"BuildLogic",Re,Yu),Ge(ho,"BuildLogicClass",Re,Yu),Ge(Bc,"BaseIntent",Re),Ge(yc,"TreeIntent",Re,Bc),Ge(vo,"TaskTreeIntent",Re,yc),Ge(go,"MessageTreeIntent",Re,yc),Ge(wo,"InputTreeIntent",Re,yc),Ge(bo,"IncompatibleTaskTreeIntent",Re,yc),Ge(yo,"Intent",Re,Bc),Ge(po,"SetTab",Re,yo),Ge(mo,"Model",Re),Ge(ko,"Tab",Re,Di),Ge(Uo,"ConfigurationCacheReportPage",Ke),Ge(Zo,"ImportedProblem",Re),Ge(Yo,"ImportedDiagnostics",Re),Ge(ff,"sam$kotlin_Comparator$0",Re),Ge(bf,"LearnMore",Re),Ge(kf,"Fragment",Re),Ge(pf,"Text",Re,kf),Ge(mf,"Reference",Re,kf),Ge(yf,"Builder",Re),Ge(qf,"Companion",Ke),Ge(Cf,"PrettyText",Re),Ge(xf,"Companion",Ke),Ge(Sf,"Trie",Re),Ge(Uf,"ViewFactory",Re),Ge(Vf,"Companion",Ke),Ge(Xf,"View",Re),Ge(Zf,"Empty",Ke,Xf),Ge(Wf,"Element",Re,Xf),Ge(Kf,"MappedView",Re,Xf),Ge(ns,"Attributes",Re),Ge(es,"Attribute",Re),Ge(ts,"OnEvent",Re,es),Ge(rs,"ClassName",Re,es),Ge(is,"Named",Re,es),Ge(as,"Intent",Re),Ge(ss,"Toggle",Re,as),Ge(cs,"Model",Re),Ge(ls,"TreeView",Ke),Ge(bs,"Focus",Re),Ge(ds,"Original",Re,bs),Ge(gs,"Child",Re,bs),Ge(ws,"ViewState",Re,Di),Ge(ks,"Tree",Re),Ge(Bs,"Tab",Re,Di),Ge(Cs,"ProblemIdElement",Re),Ge(xs,"ProblemSummary",Re),Ge(Is,"ProblemNodeGroup",Re),Ge(Zs,"ProblemApiNode",Re,Yu),Ge(Us,"Text",Re,Zs),Ge(Vs,"ProblemIdNode",Re,Zs),Ge(Qs,"Advice",Re,Yu),Ge(Ys,"MessageTreeIntent",Re,yc),Ge(Ws,"ProblemIdTreeIntent",Re,yc),Ge(Ks,"FileLocationTreeIntent",Re,yc),Ge(nc,"Intent",Re,Bc),Ge(Xs,"SetTab",Re,nc),Ge(Js,"Model",Re),Ge(bc,"ProblemsReportPage",Ke),Ge(kc,"Copy",Re,Bc),Ge(qc,"ToggleStackTracePart",Re,Bc),se(Yn).f=function(){return this.n_1.f()},se(tt).f=function(){return this.r_1.f()},se(rt).f=function(){var n,t,r=function(n,t){for(var r=n.f();r.g();){var i=r.h();t.d(i)}return t}(this.s_1,Lr());return n=r,t=this.t_1,function(n,t){if(n.k()<=1)return lr();var r=br(n);!function(n,t){if(function(){if(null!=l)return l;l=!1;var n=[],t=0;if(t<600)do{var r=t;t=t+1|0,n.push(r)}while(t<600);var i=Or;n.sort(i);var e=1,u=n.length;if(e<u)do{var o=e;e=e+1|0;var f=n[o-1|0],s=n[o];if((3&f)==(3&s)&&f>=s)return!1}while(e<u);return l=!0,!0}()){var r=(i=t,function(n,t){return i.compare(n,t)});n.sort(r)}else!function(n,t,r,i){var e=n.length,u=function(n){var t=0,r=n.length-1|0;if(t<=r)do{var i=t;t=t+1|0,n[i]=null}while(i!==r);return n}(Array(e)),o=Dr(n,u,0,r,i);if(o!==n){var f=0;if(f<=r)do{var s=f;f=f+1|0,n[s]=o[s]}while(s!==r)}}(n,0,Nn(n),t);var i}(r,t);var i=0,e=r.length;if(i<e)do{var u=i;i=i+1|0,n.f4(u,r[u])}while(i<e)}(n,t),r.f()},se(it).u=function(n){var t;n:if(Ue(this,Ti)&&this.i())t=!1;else{for(var r=this.f();r.g();)if(oe(r.h(),n)){t=!0;break n}t=!1}return t},se(it).v=function(n){var t;n:if(Ue(n,Ti)&&n.i())t=!0;else{for(var r=n.f();r.g();){var i=r.h();if(!this.u(i)){t=!1;break n}}t=!0}return t},se(it).i=function(){return 0===this.k()},se(it).toString=function(){return Mn(this,", ","[","]",A,A,(n=this,function(t){return t===n?"(this Collection)":Oi(t)}));var n},se(it).toArray=function(){return dr(this)},se(et).g=function(){return this.w_1<this.x_1.k()},se(et).h=function(){if(!this.g())throw pu();var n=this.w_1;return this.w_1=n+1|0,this.x_1.j(n)},se(ut).c1=function(){return this.w_1>0},se(ut).d1=function(){if(!this.c1())throw pu();return this.w_1=this.w_1-1|0,this.a1_1.j(this.w_1)},se(ot).e1=function(n,t){if(n<0||n>=t)throw cu("index: "+n+", size: "+t)},se(ot).b1=function(n,t){if(n<0||n>t)throw cu("index: "+n+", size: "+t)},se(ot).f1=function(n){for(var t=1,r=n.f();r.g();){var i=r.h(),e=zn(31,t),u=null==i?null:ee(i);t=e+(null==u?0:u)|0}return t},se(ot).g1=function(n,t){if(n.k()!==t.k())return!1;for(var r=t.f(),i=n.f();i.g();)if(!oe(i.h(),r.h()))return!1;return!0},se(st).f=function(){return new et(this)},se(st).l=function(n){return new ut(this,n)},se(st).equals=function(n){return n===this||!(null==n||!Ue(n,Ei))&&ft().g1(this,n)},se(st).hashCode=function(){return ft().f1(this)},se(ct).g=function(){return this.h1_1.g()},se(ct).h=function(){return this.h1_1.h().i1()},se(lt).k1=function(n){var t=n.j1(),r=null==t?null:ee(t),i=null==r?0:r,e=n.i1(),u=null==e?null:ee(e);return i^(null==u?0:u)},se(lt).l1=function(n){return Oi(n.j1())+"="+Oi(n.i1())},se(lt).m1=function(n,t){return!(null==t||!Ue(t,Li))&&!!oe(n.j1(),t.j1())&&oe(n.i1(),t.i1())},se(vt).r1=function(n){return this.q1_1.s1(n)},se(vt).u=function(n){return!(null!=n&&!Qe(n))&&this.r1(null==n||Qe(n)?n:_e())},se(vt).f=function(){return new ct(this.q1_1.o().f())},se(vt).k=function(){return this.q1_1.k()},se(dt).t1=function(n){return!(null==ht(this,n))},se(dt).s1=function(n){var t;n:{var r=this.o();if(Ue(r,Ti)&&r.i())t=!1;else{for(var i=r.f();i.g();)if(oe(i.h().i1(),n)){t=!0;break n}t=!1}}return t},se(dt).u1=function(n){if(null==n||!Ue(n,Li))return!1;var t=n.j1(),r=n.i1(),i=(Ue(this,Ni)?this:_e()).v1(t);return!(!oe(r,i)||null==i&&!(Ue(this,Ni)?this:_e()).t1(t))},se(dt).equals=function(n){if(n===this)return!0;if(null==n||!Ue(n,Ni))return!1;if(this.k()!==n.k())return!1;var t;n:{var r=n.o();if(Ue(r,Ti)&&r.i())t=!0;else{for(var i=r.f();i.g();){var e=i.h();if(!this.u1(e)){t=!1;break n}}t=!0}}return t},se(dt).v1=function(n){var t=ht(this,n);return null==t?null:t.i1()},se(dt).hashCode=function(){return ee(this.o())},se(dt).i=function(){return 0===this.k()},se(dt).k=function(){return this.o().k()},se(dt).toString=function(){var n;return Mn(this.o(),", ","{","}",A,A,(n=this,function(t){return n.p1(t)}))},se(dt).p1=function(n){return at(this,n.j1())+"="+at(this,n.i1())},se(dt).w1=function(){return null==this.o1_1&&(this.o1_1=new vt(this)),he(this.o1_1)},se(gt).x1=function(n){for(var t=0,r=n.f();r.g();){var i=r.h(),e=t,u=null==i?null:ee(i);t=e+(null==u?0:u)|0}return t},se(gt).y1=function(n,t){return n.k()===t.k()&&n.v(t)},se(yt).equals=function(n){return!(null==n||!Ue(n,Ei))&&n.i()},se(yt).hashCode=function(){return 1},se(yt).toString=function(){return"[]"},se(yt).k=function(){return 0},se(yt).i=function(){return!0},se(yt).a2=function(n){return n.i()},se(yt).v=function(n){return this.a2(n)},se(yt).j=function(n){throw cu("Empty list doesn't contain element at index "+n+".")},se(yt).f=function(){return Ct()},se(yt).l=function(n){if(0!==n)throw cu("Index: "+n);return Ct()},se(qt).k=function(){return this.b2_1.length},se(qt).i=function(){return 0===this.b2_1.length},se(qt).d2=function(n){return function(n,t){return An(n,t)>=0}(this.b2_1,n)},se(qt).e2=function(n){var t;n:if(Ue(n,Ti)&&n.i())t=!0;else{for(var r=n.f();r.g();){var i=r.h();if(!this.d2(i)){t=!1;break n}}t=!0}return t},se(qt).v=function(n){return this.e2(n)},se(qt).f=function(){return Ri(this.b2_1)},se(Bt).g=function(){return!1},se(Bt).c1=function(){return!1},se(Bt).h=function(){throw pu()},se(Bt).d1=function(){throw pu()},se(Pt).h=function(){return this.f2()},se(It).g=function(){return this.g2_1.c1()},se(It).c1=function(){return this.g2_1.g()},se(It).h=function(){return this.g2_1.d1()},se(It).d1=function(){return this.g2_1.h()},se(St).k=function(){return this.i2_1.k()},se(St).j=function(n){return this.i2_1.j(function(n,t){if(!(0<=t&&t<=kt(n)))throw cu("Element index "+t+" must be in range ["+Oe(0,kt(n))+"].");return kt(n)-t|0}(this,n))},se(St).f=function(){return this.l(0)},se(St).l=function(n){return new It(this,n)},se(zt).h=function(){return this.k2_1.m2_1(this.j2_1.h())},se(zt).g=function(){return this.j2_1.g()},se(Et).f=function(){return new zt(this)},se(Lt).h=function(){if(-1===this.o2_1&&Tt(this),0===this.o2_1)throw pu();var n=this.p2_1;return this.p2_1=null,this.o2_1=-1,null==n||Qe(n)?n:_e()},se(Lt).g=function(){return-1===this.o2_1&&Tt(this),1===this.o2_1},se(Nt).f=function(){return new Lt(this)},se(Mt).equals=function(n){return!(null==n||!Ue(n,Mi))&&n.i()},se(Mt).hashCode=function(){return 0},se(Mt).toString=function(){return"[]"},se(Mt).k=function(){return 0},se(Mt).i=function(){return!0},se(Mt).a2=function(n){return n.i()},se(Mt).v=function(n){return this.a2(n)},se(Mt).f=function(){return Ct()},se(Ht).y2=function(){return this.z2_1},se(Ht).c3=function(){return this.a3_1},se(Ht).i=function(){return this.z2_1>this.a3_1},se(Ht).equals=function(n){return n instanceof Ht&&(!(!this.i()||!n.i())||this.z2_1===n.z2_1&&this.a3_1===n.a3_1)},se(Ht).hashCode=function(){return this.i()?-1:zn(31,this.z2_1)+this.a3_1|0},se(Ht).toString=function(){return this.z2_1+".."+this.a3_1},se($t).g=function(){return this.f3_1},se($t).f2=function(){var n=this.g3_1;if(n===this.e3_1){if(!this.f3_1)throw pu();this.f3_1=!1}else this.g3_1=this.g3_1+this.d3_1|0;return n},se(Gt).q=function(n,t,r){return new Vt(n,t,r)},se(Vt).f=function(){return new $t(this.z2_1,this.a3_1,this.b3_1)},se(Vt).i=function(){return this.b3_1>0?this.z2_1>this.a3_1:this.z2_1<this.a3_1},se(Vt).equals=function(n){return n instanceof Vt&&(!(!this.i()||!n.i())||this.z2_1===n.z2_1&&this.a3_1===n.a3_1&&this.b3_1===n.b3_1)},se(Vt).hashCode=function(){return this.i()?-1:zn(31,zn(31,this.z2_1)+this.a3_1|0)+this.b3_1|0},se(Vt).toString=function(){return this.b3_1>0?this.z2_1+".."+this.a3_1+" step "+this.b3_1:this.z2_1+" downTo "+this.a3_1+" step "+(0|-this.b3_1)},se(er).h=function(){if(-1===this.j3_1&&ir(this),0===this.j3_1)throw pu();var n=this.m3_1,t=n instanceof Ht?n:_e();return this.m3_1=null,this.j3_1=-1,t},se(er).g=function(){return-1===this.j3_1&&ir(this),1===this.j3_1},se(ur).f=function(){return new er(this)},se(or).toString=function(){return"("+this.t3_1+", "+this.u3_1+")"},se(or).v3=function(){return this.t3_1},se(or).w3=function(){return this.u3_1},se(or).hashCode=function(){var n=null==this.t3_1?0:ee(this.t3_1);return zn(n,31)+(null==this.u3_1?0:ee(this.u3_1))|0},se(or).equals=function(n){if(this===n)return!0;if(!(n instanceof or))return!1;var t=n instanceof or?n:_e();return!!oe(this.t3_1,t.t3_1)&&!!oe(this.u3_1,t.u3_1)},se(hr).toString=function(){return"kotlin.Unit"},se(_r).b4=function(){return this.MIN_VALUE},se(_r).c4=function(){return this.MAX_VALUE},se(_r).d4=function(){return this.SIZE_BYTES},se(_r).e4=function(){return this.SIZE_BITS},se(mr).m=function(n){this.g4();for(var t=!1,r=n.f();r.g();){var i=r.h();this.d(i)&&(t=!0)}return t},se(mr).toJSON=function(){return this.toArray()},se(mr).g4=function(){},se(kr).g=function(){return this.h4_1<this.j4_1.k()},se(kr).h=function(){if(!this.g())throw pu();var n=this.h4_1;return this.h4_1=n+1|0,this.i4_1=n,this.j4_1.j(this.i4_1)},se(yr).c1=function(){return this.h4_1>0},se(yr).d1=function(){if(!this.c1())throw pu();return this.h4_1=this.h4_1-1|0,this.i4_1=this.h4_1,this.n4_1.j(this.i4_1)},se(qr).d=function(n){return this.g4(),this.p4(this.k(),n),!0},se(qr).f=function(){return new kr(this)},se(qr).u=function(n){return this.q4(n)>=0},se(qr).q4=function(n){var t=0,r=kt(this);if(t<=r)do{var i=t;if(t=t+1|0,oe(this.j(i),n))return i}while(i!==r);return-1},se(qr).l=function(n){return new yr(this,n)},se(qr).equals=function(n){return n===this||!(null==n||!Ue(n,Ei))&&ft().g1(this,n)},se(qr).hashCode=function(){return ft().f1(this)},se(Br).g=function(){return this.r4_1.g()},se(Br).h=function(){return this.r4_1.h().j1()},se(Cr).g=function(){return this.s4_1.g()},se(Cr).h=function(){return this.s4_1.h().i1()},se(xr).j1=function(){return this.t4_1},se(xr).i1=function(){return this.u4_1},se(xr).v4=function(n){var t=this.u4_1;return this.u4_1=n,t},se(xr).hashCode=function(){return _t().k1(this)},se(xr).toString=function(){return _t().l1(this)},se(xr).equals=function(n){return _t().m1(this,n)},se(jr).u=function(n){return this.w4(n)},se(Pr).y4=function(n){throw Cu("Add is not supported on keys")},se(Pr).d=function(n){return this.y4(null==n||Qe(n)?n:_e())},se(Pr).z4=function(n){return this.x4_1.t1(n)},se(Pr).u=function(n){return!(null!=n&&!Qe(n))&&this.z4(null==n||Qe(n)?n:_e())},se(Pr).f=function(){return new Br(this.x4_1.o().f())},se(Pr).k=function(){return this.x4_1.k()},se(Pr).g4=function(){return this.x4_1.g4()},se(Ir).f5=function(n){throw Cu("Add is not supported on values")},se(Ir).d=function(n){return this.f5(null==n||Qe(n)?n:_e())},se(Ir).r1=function(n){return this.e5_1.s1(n)},se(Ir).u=function(n){return!(null!=n&&!Qe(n))&&this.r1(null==n||Qe(n)?n:_e())},se(Ir).f=function(){return new Cr(this.e5_1.o().f())},se(Ir).k=function(){return this.e5_1.k()},se(Ir).g4=function(){return this.e5_1.g4()},se(Sr).g5=function(){return null==this.c5_1&&(this.c5_1=new Pr(this)),he(this.c5_1)},se(Sr).w1=function(){return null==this.d5_1&&(this.d5_1=new Ir(this)),he(this.d5_1)},se(Sr).g4=function(){},se(zr).equals=function(n){return n===this||!(null==n||!Ue(n,Mi))&&wt().y1(this,n)},se(zr).hashCode=function(){return wt().x1(this)},se(Fr).j5=function(){return this.g4(),this.c_1=!0,this.k()>0?this:Tr().i5_1},se(Fr).k=function(){return this.b_1.length},se(Fr).j=function(n){var t=this.b_1[Mr(this,n)];return null==t||Qe(t)?t:_e()},se(Fr).f4=function(n,t){this.g4(),Mr(this,n);var r=this.b_1[n];this.b_1[n]=t;var i=r;return null==i||Qe(i)?i:_e()},se(Fr).d=function(n){return this.g4(),this.b_1.push(n),this.o4_1=this.o4_1+1|0,!0},se(Fr).p4=function(n,t){this.g4(),this.b_1.splice(function(n,t){return ft().b1(t,n.k()),t}(this,n),0,t),this.o4_1=this.o4_1+1|0},se(Fr).m=function(n){if(this.g4(),n.i())return!1;for(var t,r,i,e=(t=this,r=n.k(),i=t.k(),t.b_1.length=t.k()+r|0,i),u=0,o=n.f();o.g();){var f=o.h(),s=u;u=s+1|0;var c=wr(s);this.b_1[e+c|0]=f}return this.o4_1=this.o4_1+1|0,!0},se(Fr).q4=function(n){return An(this.b_1,n)},se(Fr).toString=function(){return Ln(this.b_1,", ","[","]",A,A,Xi)},se(Fr).k5=function(){return[].slice.call(this.b_1)},se(Fr).toArray=function(){return this.k5()},se(Fr).g4=function(){if(this.c_1)throw Bu()},se(Rr).l5=function(n,t){return oe(n,t)},se(Rr).m5=function(n){var t=null==n?null:ee(n);return null==t?0:t},se(Hr).o5=function(n){throw Cu("Add is not supported on entries")},se(Hr).d=function(n){return this.o5(null!=n&&Ue(n,Ai)?n:_e())},se(Hr).w4=function(n){return this.n5_1.u1(n)},se(Hr).f=function(){return this.n5_1.t5_1.f()},se(Hr).k=function(){return this.n5_1.k()},se(Vr).t1=function(n){return this.t5_1.z4(n)},se(Vr).s1=function(n){var t;n:{var r=this.t5_1;if(Ue(r,Ti)&&r.i())t=!1;else{for(var i=r.f();i.g();){var e=i.h();if(this.u5_1.l5(e.i1(),n)){t=!0;break n}}t=!1}}return t},se(Vr).o=function(){return null==this.v5_1&&(this.v5_1=this.x5()),he(this.v5_1)},se(Vr).x5=function(){return new Hr(this)},se(Vr).v1=function(n){return this.t5_1.v1(n)},se(Vr).h5=function(n,t){return this.t5_1.h5(n,t)},se(Vr).k=function(){return this.t5_1.k()},se(Zr).d=function(n){return null==this.y5_1.h5(n,this)},se(Zr).u=function(n){return this.y5_1.t1(n)},se(Zr).i=function(){return this.y5_1.i()},se(Zr).f=function(){return this.y5_1.g5().f()},se(Zr).k=function(){return this.y5_1.k()},se(Xr).g=function(){return-1===this.z5_1&&(this.z5_1=function(n){if(null!=n.c6_1&&n.d6_1){var t=n.c6_1.length;if(n.e6_1=n.e6_1+1|0,n.e6_1<t)return 0}if(n.b6_1=n.b6_1+1|0,n.b6_1<n.a6_1.length){n.c6_1=n.g6_1.i6_1[n.a6_1[n.b6_1]];var r=n,i=n.c6_1;return r.d6_1=null!=i&&Ve(i),n.e6_1=0,0}return n.c6_1=null,1}(this)),0===this.z5_1},se(Xr).h=function(){if(!this.g())throw pu();var n=this.d6_1?this.c6_1[this.e6_1]:this.c6_1;return this.f6_1=n,this.z5_1=-1,n},se(Jr).w5=function(){return this.h6_1},se(Jr).k=function(){return this.j6_1},se(Jr).h5=function(n,t){var r=this.h6_1.m5(n),i=Kr(this,r);if(null==i)this.i6_1[r]=new xr(n,t);else{if(null==i||!Ve(i)){var e,u=i;return this.h6_1.l5(u.j1(),n)?u.v4(t):(e=[u,new xr(n,t)],this.i6_1[r]=e,this.j6_1=this.j6_1+1|0,null)}var o=i,f=Wr(o,this,n);if(null!=f)return f.v4(t);o.push(new xr(n,t))}return this.j6_1=this.j6_1+1|0,null},se(Jr).z4=function(n){return!(null==Yr(this,n))},se(Jr).v1=function(n){var t=Yr(this,n);return null==t?null:t.i1()},se(Jr).f=function(){return new Xr(this)},se(ti).g=function(){return!(null===this.m6_1)},se(ti).h=function(){if(!this.g())throw pu();var n=he(this.m6_1);this.l6_1=n;var t,r=n.b7_1;return t=r!==this.n6_1.y6_1.v6_1?r:null,this.m6_1=t,n},se(ei).v4=function(n){return this.d7_1.g4(),se(xr).v4.call(this,n)},se(ui).o5=function(n){throw Cu("Add is not supported on entries")},se(ui).d=function(n){return this.o5(null!=n&&Ue(n,Ai)?n:_e())},se(ui).w4=function(n){return this.y6_1.u1(n)},se(ui).f=function(){return new ti(this)},se(ui).k=function(){return this.y6_1.k()},se(ui).g4=function(){return this.y6_1.g4()},se(si).j5=function(){var n;if(this.g4(),this.x6_1=!0,this.k()>0)n=this;else{var t=ii().e7_1;n=Ue(t,Ni)?t:_e()}return n},se(si).t1=function(n){return this.w6_1.t1(n)},se(si).s1=function(n){var t=this.v6_1;if(null==t)return!1;var r=t;do{if(oe(r.i1(),n))return!0;r=he(r.b7_1)}while(r!==this.v6_1);return!1},se(si).x5=function(){return new ui(this)},se(si).v1=function(n){var t=this.w6_1.v1(n);return null==t?null:t.i1()},se(si).h5=function(n,t){this.g4();var r=this.w6_1.v1(n);if(null==r){var i=new ei(this,n,t);return this.w6_1.h5(n,i),function(n,t){if(null!=n.b7_1||null!=n.c7_1)throw hu(ie("Check failed."));var r=t.v6_1;if(null==r)t.v6_1=n,n.b7_1=n,n.c7_1=n;else{var i=r.c7_1;if(null==i)throw hu(ie("Required value was null."));var e=i;n.c7_1=e,n.b7_1=r,r.c7_1=n,e.b7_1=n}}(i,this),null}return r.v4(t)},se(si).k=function(){return this.w6_1.k()},se(si).g4=function(){if(this.x6_1)throw Bu()},se(hi).g4=function(){return this.y5_1.g4()},se(_i).h7=function(){this.i7("\n")},se(_i).j7=function(n){this.i7(n),this.h7()},se(vi).i7=function(n){var t=String(n);this.k7_1.write(t)},se(di).i7=function(n){var t=String(n),r=t.lastIndexOf("\n",0);if(r>=0){var i=this.m7_1;this.m7_1=i+t.substring(0,r),this.n7();var e=r+1|0;t=t.substring(e)}this.m7_1=this.m7_1+t},se(di).n7=function(){console.log(this.m7_1),this.m7_1=""},se(gi).i7=function(n){var t=this.m7_1;this.m7_1=t+String(n)},se(pi).x3=function(){return this.o7_1.length},se(pi).y3=function(n){var t=this.o7_1;if(!(n>=0&&n<=Yt(t)))throw cu("index: "+n+", length: "+this.x3()+"}");return Zi(t,n)},se(pi).z3=function(n,t){return this.o7_1.substring(n,t)},se(pi).i3=function(n){return this.o7_1=this.o7_1+new zi(n),this},se(pi).e=function(n){return this.o7_1=this.o7_1+Oi(n),this},se(pi).p7=function(n){var t=this.o7_1;return this.o7_1=t+(null==n?"null":n),this},se(pi).toString=function(){return this.o7_1},se(yi).t7=function(n){var t=this.q7_1;return n.replace(t,"\\$&")},se(yi).u7=function(n){var t=this.s7_1;return n.replace(t,"$$$$")},se(Bi).a8=function(n){this.x7_1.lastIndex=0;var t=this.x7_1.exec(ie(n));return null!=t&&0===t.index&&this.x7_1.lastIndex===Wi(n)},se(Bi).toString=function(){return this.x7_1.toString()},se(zi).o8=function(n){return ji(this.h3_1,n)},se(zi).a4=function(n){return function(n,t){return ji(n.h3_1,t instanceof zi?t.h3_1:_e())}(this,n)},se(zi).equals=function(n){return function(n,t){return t instanceof zi&&n===t.h3_1}(this.h3_1,n)},se(zi).hashCode=function(){return this.h3_1},se(zi).toString=function(){return Pi(this.h3_1)},se(Di).r8=function(n){return Ji(this.q8_1,n.q8_1)},se(Di).a4=function(n){return this.r8(n instanceof Di?n:_e())},se(Di).equals=function(n){return this===n},se(Di).hashCode=function(){return re(this)},se(Di).toString=function(){return this.p8_1},se(Hi).g=function(){return!(this.s8_1===this.t8_1.length)},se(Hi).h=function(){if(this.s8_1===this.t8_1.length)throw mu(""+this.s8_1);var n=this.s8_1;return this.s8_1=n+1|0,this.t8_1[n]},se(de).b9=function(n){return ke(this,n)},se(de).a4=function(n){return this.b9(n instanceof de?n:_e())},se(de).c9=function(n){return ye(this,n)},se(de).d9=function(n){return function(n,t){if(Me(),Se(t))throw vu("division by zero");if(Se(n))return ge();if(xe(n,pe())){if(xe(t,we())||xe(t,be()))return pe();if(xe(t,pe()))return we();var r=function(n){Me();return new de(n.u8_1>>>1|n.v8_1<<31,n.v8_1>>1)}(n),i=function(n){Me();return new de(n.u8_1<<1,n.v8_1<<1|n.u8_1>>>31)}(r.d9(t));return xe(i,ge())?Ie(t)?we():be():ye(i,qe(n,Be(t,i)).d9(t))}if(xe(t,pe()))return ge();if(Ie(n))return Ie(t)?Ee(n).d9(Ee(t)):Ee(Ee(n).d9(t));if(Ie(t))return Ee(n.d9(Ee(t)));for(var e=ge(),u=n;Ae(u,t);){for(var o=Ce(u)/Ce(t),f=Math.max(1,Math.floor(o)),s=Math.ceil(Math.log(f)/Math.LN2),c=s<=48?1:Math.pow(2,s-48),a=Le(f),h=Be(a,t);Ie(h)||Ne(h,u);)h=Be(a=Le(f-=c),t);Se(a)&&(a=we()),e=ye(e,a),u=qe(u,h)}return e}(this,n)},se(de).e9=function(){return this.f9().c9(new de(1,0))},se(de).f9=function(){return new de(~this.u8_1,~this.v8_1)},se(de).g9=function(){return this.u8_1},se(de).w8=function(){return Ce(this)},se(de).valueOf=function(){return this.w8()},se(de).equals=function(n){return n instanceof de&&xe(this,n)},se(de).hashCode=function(){return Me(),this.u8_1^this.v8_1},se(de).toString=function(){return je(this,10)},se(Au).toString=function(){return"Model(text="+this.o9_1+", tooltip="+this.p9_1+")"},se(Au).hashCode=function(){var n=ue(this.o9_1);return zn(n,31)+ue(this.p9_1)|0},se(Au).equals=function(n){if(this===n)return!0;if(!(n instanceof Au))return!1;var t=n instanceof Au?n:_e();return this.o9_1===t.o9_1&&this.p9_1===t.p9_1},se(Mu).v9=function(n,t){return this.w9(new Au(n,t))},se(Mu).w9=function(n){var t,r;return Df().y9(Jf((t=n,r=this,function(n){return n.s9(t.p9_1),n.t9("copy-button"),n.u9(function(n,t){return function(r){return n.q9_1(t.o9_1)}}(r,t)),lr()})),[])},se(Mu).z9=function(n){return this.w9(n instanceof Au?n:_e())},se(Mu).aa=function(n,t){return t},se(Mu).ba=function(n,t){var r=null==n||Qe(n)?n:_e();return this.aa(r,t instanceof Au?t:_e())},se(Du).ka=function(n){return function(n,t){for(var r=Ff(),i=t.ca_1,e=Nr(xt(i,10)),u=i.f();u.g();){var o,f,s=u.h();s instanceof pf?f=Ff().ga(s.fa_1):s instanceof mf?f=Fu(n,s.da_1,s.ea_1):le(),o=f,e.d(o)}return r.ha(e)}(this,n)},se(Du).z9=function(n){return this.ka(n instanceof Cf?n:_e())},se(Du).la=function(n,t){return t},se(Du).ba=function(n,t){var r=null==n||Qe(n)?n:_e();return this.la(r,t instanceof Cf?t:_e())},se(Ou).pa=function(n,t,r){return new Ou(n,t,r)},se(Ou).qa=function(n,t,r,i){return n=n===A?this.ma_1:n,t=t===A?this.na_1:t,r=r===A?this.oa_1:r,i===A?this.pa(n,t,r):i.pa.call(this,n,t,r)},se(Ou).toString=function(){return"Exception(summary="+this.ma_1+", fullText="+this.na_1+", parts="+this.oa_1+")"},se(Ou).hashCode=function(){var n=null==this.ma_1?0:this.ma_1.hashCode();return n=zn(n,31)+ue(this.na_1)|0,zn(n,31)+ee(this.oa_1)|0},se(Ou).equals=function(n){if(this===n)return!0;if(!(n instanceof Ou))return!1;var t=n instanceof Ou?n:_e();return!!oe(this.ma_1,t.ma_1)&&this.na_1===t.na_1&&!!oe(this.oa_1,t.oa_1)},se(Ru).ta=function(n,t){return new Ru(n,t)},se(Ru).ua=function(n,t,r){return n=n===A?this.ra_1:n,t=t===A?this.sa_1:t,r===A?this.ta(n,t):r.ta.call(this,n,t)},se(Ru).toString=function(){return"StackTracePart(lines="+this.ra_1+", state="+this.sa_1+")"},se(Ru).hashCode=function(){var n=ee(this.ra_1);return zn(n,31)+(null==this.sa_1?0:this.sa_1.hashCode())|0},se(Ru).equals=function(n){if(this===n)return!0;if(!(n instanceof Ru))return!1;var t=n instanceof Ru?n:_e();return!!oe(this.ra_1,t.ra_1)&&!!oe(this.sa_1,t.sa_1)},se(Hu).toString=function(){return"Error(label="+this.va_1+", docLink="+this.wa_1+")"},se(Hu).hashCode=function(){var n=ee(this.va_1);return zn(n,31)+(null==this.wa_1?0:ee(this.wa_1))|0},se(Hu).equals=function(n){if(this===n)return!0;if(!(n instanceof Hu))return!1;var t=n instanceof Hu?n:_e();return!!oe(this.va_1,t.va_1)&&!!oe(this.wa_1,t.wa_1)},se($u).toString=function(){return"Warning(label="+this.xa_1+", docLink="+this.ya_1+")"},se($u).hashCode=function(){var n=ee(this.xa_1);return zn(n,31)+(null==this.ya_1?0:ee(this.ya_1))|0},se($u).equals=function(n){if(this===n)return!0;if(!(n instanceof $u))return!1;var t=n instanceof $u?n:_e();return!!oe(this.xa_1,t.xa_1)&&!!oe(this.ya_1,t.ya_1)},se(Gu).toString=function(){return"Message(prettyText="+this.za_1+")"},se(Gu).hashCode=function(){return this.za_1.hashCode()},se(Gu).equals=function(n){if(this===n)return!0;if(!(n instanceof Gu))return!1;var t=n instanceof Gu?n:_e();return!!this.za_1.equals(t.za_1)},se(Uu).toString=function(){return"ListElement(prettyText="+this.ab_1+")"},se(Uu).hashCode=function(){return this.ab_1.hashCode()},se(Uu).equals=function(n){if(this===n)return!0;if(!(n instanceof Uu))return!1;var t=n instanceof Uu?n:_e();return!!this.ab_1.equals(t.ab_1)},se(Vu).toString=function(){return"TreeNode(prettyText="+this.bb_1+")"},se(Vu).hashCode=function(){return this.bb_1.hashCode()},se(Vu).equals=function(n){if(this===n)return!0;if(!(n instanceof Vu))return!1;var t=n instanceof Vu?n:_e();return!!this.bb_1.equals(t.bb_1)},se(Qu).toString=function(){return"Link(href="+this.cb_1+", label="+this.db_1+")"},se(Qu).hashCode=function(){var n=ue(this.cb_1);return zn(n,31)+ue(this.db_1)|0},se(Qu).equals=function(n){if(this===n)return!0;if(!(n instanceof Qu))return!1;var t=n instanceof Qu?n:_e();return this.cb_1===t.cb_1&&this.db_1===t.db_1},se(Zu).toString=function(){return"Label(text="+this.eb_1+")"},se(Zu).hashCode=function(){return ue(this.eb_1)},se(Zu).equals=function(n){if(this===n)return!0;if(!(n instanceof Zu))return!1;var t=n instanceof Zu?n:_e();return this.eb_1===t.eb_1},se(io).toString=function(){return"Info(label="+this.hb_1+", docLink="+this.ib_1+")"},se(io).hashCode=function(){var n=ee(this.hb_1);return zn(n,31)+(null==this.ib_1?0:ee(this.ib_1))|0},se(io).equals=function(n){if(this===n)return!0;if(!(n instanceof io))return!1;var t=n instanceof io?n:_e();return!!oe(this.hb_1,t.hb_1)&&!!oe(this.ib_1,t.ib_1)},se(eo).toString=function(){return"Project(path="+this.jb_1+")"},se(eo).hashCode=function(){return ue(this.jb_1)},se(eo).equals=function(n){if(this===n)return!0;if(!(n instanceof eo))return!1;var t=n instanceof eo?n:_e();return this.jb_1===t.jb_1},se(uo).toString=function(){return"Task(path="+this.kb_1+", type="+this.lb_1+")"},se(uo).hashCode=function(){var n=ue(this.kb_1);return zn(n,31)+ue(this.lb_1)|0},se(uo).equals=function(n){if(this===n)return!0;if(!(n instanceof uo))return!1;var t=n instanceof uo?n:_e();return this.kb_1===t.kb_1&&this.lb_1===t.lb_1},se(oo).toString=function(){return"TaskPath(path="+this.mb_1+")"},se(oo).hashCode=function(){return ue(this.mb_1)},se(oo).equals=function(n){if(this===n)return!0;if(!(n instanceof oo))return!1;var t=n instanceof oo?n:_e();return this.mb_1===t.mb_1},se(fo).toString=function(){return"Bean(type="+this.nb_1+")"},se(fo).hashCode=function(){return ue(this.nb_1)},se(fo).equals=function(n){if(this===n)return!0;if(!(n instanceof fo))return!1;var t=n instanceof fo?n:_e();return this.nb_1===t.nb_1},se(so).toString=function(){return"SystemProperty(name="+this.ob_1+")"},se(so).hashCode=function(){return ue(this.ob_1)},se(so).equals=function(n){if(this===n)return!0;if(!(n instanceof so))return!1;var t=n instanceof so?n:_e();return this.ob_1===t.ob_1},se(co).toString=function(){return"Property(kind="+this.pb_1+", name="+this.qb_1+", owner="+this.rb_1+")"},se(co).hashCode=function(){var n=ue(this.pb_1);return n=zn(n,31)+ue(this.qb_1)|0,zn(n,31)+ue(this.rb_1)|0},se(co).equals=function(n){if(this===n)return!0;if(!(n instanceof co))return!1;var t=n instanceof co?n:_e();return this.pb_1===t.pb_1&&this.qb_1===t.qb_1&&this.rb_1===t.rb_1},se(ao).toString=function(){return"BuildLogic(location="+this.sb_1+")"},se(ao).hashCode=function(){return ue(this.sb_1)},se(ao).equals=function(n){if(this===n)return!0;if(!(n instanceof ao))return!1;var t=n instanceof ao?n:_e();return this.sb_1===t.sb_1},se(ho).toString=function(){return"BuildLogicClass(type="+this.tb_1+")"},se(ho).hashCode=function(){return ue(this.tb_1)},se(ho).equals=function(n){if(this===n)return!0;if(!(n instanceof ho))return!1;var t=n instanceof ho?n:_e();return this.tb_1===t.tb_1},se(vo).zb=function(){return this.yb_1},se(vo).toString=function(){return"TaskTreeIntent(delegate="+this.yb_1+")"},se(vo).hashCode=function(){return ee(this.yb_1)},se(vo).equals=function(n){if(this===n)return!0;if(!(n instanceof vo))return!1;var t=n instanceof vo?n:_e();return!!oe(this.yb_1,t.yb_1)},se(go).zb=function(){return this.ac_1},se(go).toString=function(){return"MessageTreeIntent(delegate="+this.ac_1+")"},se(go).hashCode=function(){return ee(this.ac_1)},se(go).equals=function(n){if(this===n)return!0;if(!(n instanceof go))return!1;var t=n instanceof go?n:_e();return!!oe(this.ac_1,t.ac_1)},se(wo).zb=function(){return this.bc_1},se(wo).toString=function(){return"InputTreeIntent(delegate="+this.bc_1+")"},se(wo).hashCode=function(){return ee(this.bc_1)},se(wo).equals=function(n){if(this===n)return!0;if(!(n instanceof wo))return!1;var t=n instanceof wo?n:_e();return!!oe(this.bc_1,t.bc_1)},se(bo).zb=function(){return this.cc_1},se(bo).toString=function(){return"IncompatibleTaskTreeIntent(delegate="+this.cc_1+")"},se(bo).hashCode=function(){return ee(this.cc_1)},se(bo).equals=function(n){if(this===n)return!0;if(!(n instanceof bo))return!1;var t=n instanceof bo?n:_e();return!!oe(this.cc_1,t.cc_1)},se(po).toString=function(){return"SetTab(tab="+this.dc_1+")"},se(po).hashCode=function(){return this.dc_1.hashCode()},se(po).equals=function(n){if(this===n)return!0;if(!(n instanceof po))return!1;var t=n instanceof po?n:_e();return!!this.dc_1.equals(t.dc_1)},se(mo).mc=function(n,t,r,i,e,u,o,f){return new mo(n,t,r,i,e,u,o,f)},se(mo).nc=function(n,t,r,i,e,u,o,f,s){return n=n===A?this.ec_1:n,t=t===A?this.fc_1:t,r=r===A?this.gc_1:r,i=i===A?this.hc_1:i,e=e===A?this.ic_1:e,u=u===A?this.jc_1:u,o=o===A?this.kc_1:o,f=f===A?this.lc_1:f,s===A?this.mc(n,t,r,i,e,u,o,f):s.mc.call(this,n,t,r,i,e,u,o,f)},se(mo).toString=function(){return"Model(heading="+this.ec_1+", summary="+this.fc_1+", learnMore="+this.gc_1+", messageTree="+this.hc_1+", locationTree="+this.ic_1+", inputTree="+this.jc_1+", incompatibleTaskTree="+this.kc_1+", tab="+this.lc_1+")"},se(mo).hashCode=function(){var n=this.ec_1.hashCode();return n=zn(n,31)+ee(this.fc_1)|0,n=zn(n,31)+this.gc_1.hashCode()|0,n=zn(n,31)+this.hc_1.hashCode()|0,n=zn(n,31)+this.ic_1.hashCode()|0,n=zn(n,31)+this.jc_1.hashCode()|0,n=zn(n,31)+this.kc_1.hashCode()|0,zn(n,31)+this.lc_1.hashCode()|0},se(mo).equals=function(n){if(this===n)return!0;if(!(n instanceof mo))return!1;var t=n instanceof mo?n:_e();return!!(this.ec_1.equals(t.ec_1)&&oe(this.fc_1,t.fc_1)&&this.gc_1.equals(t.gc_1)&&this.hc_1.equals(t.hc_1)&&this.ic_1.equals(t.ic_1)&&this.jc_1.equals(t.jc_1)&&this.kc_1.equals(t.kc_1)&&this.lc_1.equals(t.lc_1))},se(Uo).gd=function(n,t){var r,i;return n instanceof vo?r=t.nc(A,A,A,A,_s().id(n.yb_1,t.ic_1)):n instanceof go?r=t.nc(A,A,A,_s().id(n.ac_1,t.hc_1)):n instanceof wo?r=t.nc(A,A,A,A,A,_s().id(n.bc_1,t.jc_1)):n instanceof bo?r=t.nc(A,A,A,A,A,A,_s().id(n.cc_1,t.kc_1)):n instanceof qc?r=function(n,t,r,i){var e;return r instanceof go?e=n.nc(A,A,A,mc(n.hc_1,r,i)):r instanceof vo?e=n.nc(A,A,A,A,mc(n.ic_1,r,i)):r instanceof wo?e=n.nc(A,A,A,A,A,mc(n.jc_1,r,i)):r instanceof bo?e=n.nc(A,A,A,A,A,A,mc(n.kc_1,r,i)):(console.error("Unhandled tree intent: "+r),e=n),e}(t,0,n.xc_1,(i=n,function(n){var t;if(!(n instanceof Ou))throw fu(ie("Failed requirement."));for(var r=n.oa_1,e=i.wc_1,u=Nr(xt(r,10)),o=0,f=r.f();f.g();){var s,c,a=f.h(),h=o;if(o=h+1|0,e===wr(h)){var l=a.sa_1;c=a.ua(A,null==l?null:l.ad())}else c=a;s=c,u.d(s)}return t=u,n.qa(A,A,t)})):n instanceof kc?(window.navigator.clipboard.writeText(n.hd_1),r=t):n instanceof po?r=t.nc(A,A,A,A,A,A,A,n.dc_1):(console.error("Unhandled intent: "+n),r=t),r},se(Uo).ba=function(n,t){var r=n instanceof Bc?n:_e();return this.gd(r,t instanceof mo?t:_e())},se(Uo).jd=function(n){return Af().y9(Jf(To),[qo(0,n),Bo(0,n)])},se(Uo).z9=function(n){return this.jd(n instanceof mo?n:_e())},se(Zo).toString=function(){return"ImportedProblem(problem="+this.kd_1+", message="+this.ld_1+", trace="+this.md_1+")"},se(Zo).hashCode=function(){var n=ee(this.kd_1);return n=zn(n,31)+this.ld_1.hashCode()|0,zn(n,31)+ee(this.md_1)|0},se(Zo).equals=function(n){if(this===n)return!0;if(!(n instanceof Zo))return!1;var t=n instanceof Zo?n:_e();return!!oe(this.kd_1,t.kd_1)&&!!this.ld_1.equals(t.ld_1)&&!!oe(this.md_1,t.md_1)},se(ff).ud=function(n,t){return this.td_1(n,t)},se(ff).compare=function(n,t){return this.ud(n,t)},se(bf).toString=function(){return"LearnMore(text="+this.sc_1+", documentationLink="+this.tc_1+")"},se(bf).hashCode=function(){var n=ue(this.sc_1);return zn(n,31)+ue(this.tc_1)|0},se(bf).equals=function(n){if(this===n)return!0;if(!(n instanceof bf))return!1;var t=n instanceof bf?n:_e();return this.sc_1===t.sc_1&&this.tc_1===t.tc_1},se(pf).toString=function(){return"Text(text="+this.fa_1+")"},se(pf).hashCode=function(){return ue(this.fa_1)},se(pf).equals=function(n){if(this===n)return!0;if(!(n instanceof pf))return!1;var t=n instanceof pf?n:_e();return this.fa_1===t.fa_1},se(mf).toString=function(){return"Reference(name="+this.da_1+", clipboardString="+this.ea_1+")"},se(mf).hashCode=function(){var n=ue(this.da_1);return zn(n,31)+ue(this.ea_1)|0},se(mf).equals=function(n){if(this===n)return!0;if(!(n instanceof mf))return!1;var t=n instanceof mf?n:_e();return this.da_1===t.da_1&&this.ea_1===t.ea_1},se(yf).ed=function(n){return this.dd_1.d(new pf(n)),this},se(yf).xd=function(n,t){return this.dd_1.d(new mf(n,t)),this},se(yf).fd=function(n,t,r){return t=t===A?n:t,r===A?this.xd(n,t):r.xd.call(this,n,t)},se(yf).j5=function(){return new Cf(Rn(this.dd_1))},se(qf).rd=function(n){return new Cf(gr(new pf(n)))},se(qf).qd=function(n){var t=new yf;return n(t),t.j5()},se(Cf).vd=function(n){return new Cf(n)},se(Cf).toString=function(){return"PrettyText(fragments="+this.ca_1+")"},se(Cf).hashCode=function(){return ee(this.ca_1)},se(Cf).equals=function(n){if(this===n)return!0;if(!(n instanceof Cf))return!1;var t=n instanceof Cf?n:_e();return!!oe(this.ca_1,t.ca_1)},se(xf).sd=function(n){return function(n){for(var t=Gr(),r=n.f();r.g();)for(var i=t,e=r.h().f();e.g();){var u,o=e.h(),f=i,s=f.v1(o);if(null==s){var c=Gr();f.h5(o,c),u=c}else u=s;i=u instanceof Vr?u:_e()}return t}(n)},se(Sf).toString=function(){return"Trie(nestedMaps="+this.wd_1+")"},se(Sf).hashCode=function(){return ee(this.wd_1)},se(Sf).equals=function(n){return function(n,t){return t instanceof Sf&&!!oe(n,t instanceof Sf?t.wd_1:_e())}(this.wd_1,n)},se(Uf).ga=function(n){return Qf().yd(this.x9_1,A,n)},se(Uf).ha=function(n){return Qf().yd(this.x9_1,A,A,n)},se(Uf).ja=function(n){return Qf().yd(this.x9_1,A,A,nu(n))},se(Uf).y9=function(n,t){return Qf().yd(this.x9_1,n,A,nu(t))},se(Uf).zd=function(n,t){return Qf().yd(this.x9_1,n,A,t)},se(Uf).fb=function(n,t){return Qf().yd(this.x9_1,n,t)},se(Uf).rc=function(n,t){return Qf().yd(this.x9_1,A,n,nu(t))},se(Uf).toString=function(){return"ViewFactory(elementName="+this.x9_1+")"},se(Uf).hashCode=function(){return ue(this.x9_1)},se(Uf).equals=function(n){if(this===n)return!0;if(!(n instanceof Uf))return!1;var t=n instanceof Uf?n:_e();return this.x9_1===t.x9_1},se(Vf).ae=function(n,t,r,i){return new Wf(n,t,r,i)},se(Vf).yd=function(n,t,r,i,e){return t=t===A?pt():t,r=r===A?null:r,i=i===A?pt():i,e===A?this.ae(n,t,r,i):e.ae.call(this,n,t,r,i)},se(Wf).toString=function(){return"Element(elementName="+this.be_1+", attributes="+this.ce_1+", innerText="+this.de_1+", children="+this.ee_1+")"},se(Wf).hashCode=function(){var n=ue(this.be_1);return n=zn(n,31)+ee(this.ce_1)|0,n=zn(n,31)+(null==this.de_1?0:ue(this.de_1))|0,zn(n,31)+ee(this.ee_1)|0},se(Wf).equals=function(n){if(this===n)return!0;if(!(n instanceof Wf))return!1;var t=n instanceof Wf?n:_e();return this.be_1===t.be_1&&!!oe(this.ce_1,t.ce_1)&&this.de_1==t.de_1&&!!oe(this.ee_1,t.ee_1)},se(ns).u9=function(n){return this.r9_1(new ts("click",n))},se(ns).t9=function(n){return this.r9_1(new rs(n))},se(ns).gb=function(n){for(var t=0,r=n.length;t<r;){var i=n[t];t=t+1|0,this.r9_1(new rs(i))}return lr()},se(ns).s9=function(n){return this.r9_1(new is("title",n))},se(ns).bd=function(n){return this.r9_1(new is("href",n))},se(ss).oe=function(){return this.ne_1},se(ss).toString=function(){return"Toggle(focus="+this.ne_1+")"},se(ss).hashCode=function(){return ee(this.ne_1)},se(ss).equals=function(n){if(this===n)return!0;if(!(n instanceof ss))return!1;var t=n instanceof ss?n:_e();return!!oe(this.ne_1,t.ne_1)},se(cs).pe=function(n,t){return this.re(n.qe((r=t,function(n){return n.me(r(n.ub_1))})));var r},se(cs).re=function(n){return new cs(n)},se(cs).toString=function(){return"Model(tree="+this.xb_1+")"},se(cs).hashCode=function(){return this.xb_1.hashCode()},se(cs).equals=function(n){if(this===n)return!0;if(!(n instanceof cs))return!1;var t=n instanceof cs?n:_e();return!!this.xb_1.equals(t.xb_1)},se(ls).id=function(n,t){var r;if(n instanceof ss){var i=n.oe();r=t.re(i.qe(hs))}else le();return r},se(ds).cd=function(){return this.ve_1},se(ds).we=function(){return 0},se(ds).qe=function(n){return n(this.ve_1)},se(ds).toString=function(){return"Original(tree="+this.ve_1+")"},se(ds).hashCode=function(){return this.ve_1.hashCode()},se(ds).equals=function(n){if(this===n)return!0;if(!(n instanceof ds))return!1;var t=n instanceof ds?n:_e();return!!this.ve_1.equals(t.ve_1)},se(gs).cd=function(){return this.ue_1},se(gs).we=function(){return this.se_1.we()+1|0},se(gs).qe=function(n){return this.se_1.qe((t=this,r=n,function(n){for(var i,e=n.vb_1,u=t.te_1,o=Nr(xt(e,10)),f=0,s=e.f();s.g();){var c,a=s.h(),h=f;f=h+1|0,c=u===wr(h)?r(a):a,o.d(c)}return i=o,n.me(A,i)}));var t,r},se(gs).toString=function(){return"Child(parent="+this.se_1+", index="+this.te_1+", tree="+this.ue_1+")"},se(gs).hashCode=function(){var n=ee(this.se_1);return n=zn(n,31)+this.te_1|0,zn(n,31)+this.ue_1.hashCode()|0},se(gs).equals=function(n){if(this===n)return!0;if(!(n instanceof gs))return!1;var t=n instanceof gs?n:_e();return!!oe(this.se_1,t.se_1)&&this.te_1===t.te_1&&!!this.ue_1.equals(t.ue_1)},se(ws).ad=function(){var n;switch(this.q8_1){case 0:n=ms();break;case 1:n=ps();break;default:le()}return n},se(bs).vc=function(){var n,t;return Jn(On(Oe(0,this.cd().vb_1.k()-1|0)),(n=this,(t=function(t){return n.xe(t)}).callableName="child",t))},se(bs).xe=function(n){return new gs(this,n,this.cd().vb_1.j(n))},se(ks).uc=function(){return new ds(this)},se(ks).ye=function(){return!this.vb_1.i()},se(ks).ze=function(n,t,r){return new ks(n,t,r)},se(ks).me=function(n,t,r,i){return n=n===A?this.ub_1:n,t=t===A?this.vb_1:t,r=r===A?this.wb_1:r,i===A?this.ze(n,t,r):i.ze.call(this,n,t,r)},se(ks).toString=function(){return"Tree(label="+this.ub_1+", children="+this.vb_1+", state="+this.wb_1+")"},se(ks).hashCode=function(){var n=null==this.ub_1?0:ee(this.ub_1);return n=zn(n,31)+ee(this.vb_1)|0,zn(n,31)+this.wb_1.hashCode()|0},se(ks).equals=function(n){if(this===n)return!0;if(!(n instanceof ks))return!1;var t=n instanceof ks?n:_e();return!!oe(this.ub_1,t.ub_1)&&!!oe(this.vb_1,t.vb_1)&&!!this.wb_1.equals(t.wb_1)},se(Cs).toString=function(){return"ProblemIdElement(name="+this.df_1+", displayName="+this.ef_1+")"},se(Cs).hashCode=function(){var n=ue(this.df_1);return zn(n,31)+ue(this.ef_1)|0},se(Cs).equals=function(n){if(this===n)return!0;if(!(n instanceof Cs))return!1;var t=n instanceof Cs?n:_e();return this.df_1===t.df_1&&this.ef_1===t.ef_1},se(xs).toString=function(){return"ProblemSummary(problemId="+this.ff_1+", count="+this.gf_1+")"},se(xs).hashCode=function(){var n=ee(this.ff_1);return zn(n,31)+this.gf_1|0},se(xs).equals=function(n){if(this===n)return!0;if(!(n instanceof xs))return!1;var t=n instanceof xs?n:_e();return!!oe(this.ff_1,t.ff_1)&&this.gf_1===t.gf_1},se(Is).toString=function(){return"ProblemNodeGroup(tree="+this.hf_1+", children="+this.if_1+", childGroups="+this.jf_1+", id="+this.kf_1+")"},se(Is).hashCode=function(){var n=this.hf_1.hashCode();return n=zn(n,31)+ee(this.if_1)|0,n=zn(n,31)+ee(this.jf_1)|0,zn(n,31)+this.kf_1|0},se(Is).equals=function(n){if(this===n)return!0;if(!(n instanceof Is))return!1;var t=n instanceof Is?n:_e();return!!this.hf_1.equals(t.hf_1)&&!!oe(this.if_1,t.if_1)&&!!oe(this.jf_1,t.jf_1)&&this.kf_1===t.kf_1},se(Us).toString=function(){return"Text(text="+this.lf_1+")"},se(Us).hashCode=function(){return ue(this.lf_1)},se(Us).equals=function(n){if(this===n)return!0;if(!(n instanceof Us))return!1;var t=n instanceof Us?n:_e();return this.lf_1===t.lf_1},se(Vs).toString=function(){return"ProblemIdNode(prettyText="+this.mf_1+", separator="+this.nf_1+")"},se(Vs).hashCode=function(){var n=this.mf_1.hashCode();return zn(n,31)+(0|this.nf_1)|0},se(Vs).equals=function(n){if(this===n)return!0;if(!(n instanceof Vs))return!1;var t=n instanceof Vs?n:_e();return!!this.mf_1.equals(t.mf_1)&&this.nf_1===t.nf_1},se(Qs).toString=function(){return"Advice(label="+this.of_1+", docLink="+this.pf_1+")"},se(Qs).hashCode=function(){var n=ee(this.of_1);return zn(n,31)+(null==this.pf_1?0:ee(this.pf_1))|0},se(Qs).equals=function(n){if(this===n)return!0;if(!(n instanceof Qs))return!1;var t=n instanceof Qs?n:_e();return!!oe(this.of_1,t.of_1)&&!!oe(this.pf_1,t.pf_1)},se(Ys).zb=function(){return this.qf_1},se(Ys).toString=function(){return"MessageTreeIntent(delegate="+this.qf_1+")"},se(Ys).hashCode=function(){return ee(this.qf_1)},se(Ys).equals=function(n){if(this===n)return!0;if(!(n instanceof Ys))return!1;var t=n instanceof Ys?n:_e();return!!oe(this.qf_1,t.qf_1)},se(Ws).zb=function(){return this.rf_1},se(Ws).toString=function(){return"ProblemIdTreeIntent(delegate="+this.rf_1+")"},se(Ws).hashCode=function(){return ee(this.rf_1)},se(Ws).equals=function(n){if(this===n)return!0;if(!(n instanceof Ws))return!1;var t=n instanceof Ws?n:_e();return!!oe(this.rf_1,t.rf_1)},se(Ks).zb=function(){return this.sf_1},se(Ks).toString=function(){return"FileLocationTreeIntent(delegate="+this.sf_1+")"},se(Ks).hashCode=function(){return ee(this.sf_1)},se(Ks).equals=function(n){if(this===n)return!0;if(!(n instanceof Ks))return!1;var t=n instanceof Ks?n:_e();return!!oe(this.sf_1,t.sf_1)},se(Xs).toString=function(){return"SetTab(tab="+this.tf_1+")"},se(Xs).hashCode=function(){return this.tf_1.hashCode()},se(Xs).equals=function(n){if(this===n)return!0;if(!(n instanceof Xs))return!1;var t=n instanceof Xs?n:_e();return!!this.tf_1.equals(t.tf_1)},se(Js).cg=function(n,t,r,i,e,u,o,f){return new Js(n,t,r,i,e,u,o,f)},se(Js).dg=function(n,t,r,i,e,u,o,f,s){return n=n===A?this.uf_1:n,t=t===A?this.vf_1:t,r=r===A?this.wf_1:r,i=i===A?this.xf_1:i,e=e===A?this.yf_1:e,u=u===A?this.zf_1:u,o=o===A?this.ag_1:o,f=f===A?this.bg_1:f,s===A?this.cg(n,t,r,i,e,u,o,f):s.cg.call(this,n,t,r,i,e,u,o,f)},se(Js).toString=function(){return"Model(heading="+this.uf_1+", summary="+this.vf_1+", learnMore="+this.wf_1+", messageTree="+this.xf_1+", problemIdTree="+this.yf_1+", fileLocationTree="+this.zf_1+", problemCount="+this.ag_1+", tab="+this.bg_1+")"},se(Js).hashCode=function(){var n=this.uf_1.hashCode();return n=zn(n,31)+ee(this.vf_1)|0,n=zn(n,31)+this.wf_1.hashCode()|0,n=zn(n,31)+this.xf_1.hashCode()|0,n=zn(n,31)+this.yf_1.hashCode()|0,n=zn(n,31)+this.zf_1.hashCode()|0,n=zn(n,31)+this.ag_1|0,zn(n,31)+this.bg_1.hashCode()|0},se(Js).equals=function(n){if(this===n)return!0;if(!(n instanceof Js))return!1;var t=n instanceof Js?n:_e();return!!(this.uf_1.equals(t.uf_1)&&oe(this.vf_1,t.vf_1)&&this.wf_1.equals(t.wf_1)&&this.xf_1.equals(t.xf_1)&&this.yf_1.equals(t.yf_1)&&this.zf_1.equals(t.zf_1)&&this.ag_1===t.ag_1&&this.bg_1.equals(t.bg_1))},se(bc).eg=function(n,t){var r,i;return n instanceof Ks?r=t.dg(A,A,A,A,A,_s().id(n.sf_1,t.zf_1)):n instanceof Ws?r=t.dg(A,A,A,A,_s().id(n.rf_1,t.yf_1)):n instanceof Ys?r=t.dg(A,A,A,_s().id(n.qf_1,t.xf_1)):n instanceof qc?r=function(n,t,r,i){var e;return r instanceof Ys?e=n.dg(A,A,A,mc(n.xf_1,r,i)):r instanceof Ws?e=n.dg(A,A,A,A,mc(n.yf_1,r,i)):r instanceof Ks?e=n.dg(A,A,A,A,A,mc(n.zf_1,r,i)):(console.error("Unhandled tree intent: "+r),e=n),e}(t,0,n.xc_1,(i=n,function(n){var t;if(!(n instanceof Ou))throw fu(ie("Failed requirement."));for(var r=n.oa_1,e=i.wc_1,u=Nr(xt(r,10)),o=0,f=r.f();f.g();){var s,c,a=f.h(),h=o;if(o=h+1|0,e===wr(h)){var l=a.sa_1;c=a.ua(A,null==l?null:l.ad())}else c=a;s=c,u.d(s)}return t=u,n.qa(A,A,t)})):n instanceof kc?(window.navigator.clipboard.writeText(n.hd_1),r=t):n instanceof Xs?r=t.dg(A,A,A,A,A,A,A,n.tf_1):(console.error("Unhandled intent: "+n),r=t),r},se(bc).ba=function(n,t){var r=n instanceof Bc?n:_e();return this.eg(r,t instanceof Js?t:_e())},se(bc).fg=function(n){return Af().y9(Jf(ac),[tc(0,n),rc(0,n)])},se(bc).z9=function(n){return this.fg(n instanceof Js?n:_e())},se(kc).toString=function(){return"Copy(text="+this.hd_1+")"},se(kc).hashCode=function(){return ue(this.hd_1)},se(kc).equals=function(n){if(this===n)return!0;if(!(n instanceof kc))return!1;var t=n instanceof kc?n:_e();return this.hd_1===t.hd_1},se(qc).toString=function(){return"ToggleStackTracePart(partIndex="+this.wc_1+", location="+this.xc_1+")"},se(qc).hashCode=function(){var n=this.wc_1;return zn(n,31)+ee(this.xc_1)|0},se(qc).equals=function(n){if(this===n)return!0;if(!(n instanceof qc))return!1;var t=n instanceof qc?n:_e();return this.wc_1===t.wc_1&&!!oe(this.xc_1,t.xc_1)},se(Jr).k6=function(){var n=Object.create(null);return n.foo=1,delete n.foo,lr(),n},l=null,wn=0,function(){var n=configurationCacheProblems();if(null==n.problemsReport)zf(Ef("report"),Vo(),function(n){var t,r,i,e,u,o,f,s,c,a,h=function(n){for(var t=Lr(),r=Lr(),i=Lr(),e=0,u=n.length;e<u;){var o=n[e];e=e+1|0;var f,s=o.input,c=null==s?null:r.d(Wo(s,o));if(null==c){var a=o.incompatibleTask;f=null==a?null:i.d(Wo(a,o))}else f=c;if(null==f){var h=he(o.problem);t.d(Wo(h,o))}}return new Yo(t,r,i)}(n.diagnostics),l=n.totalProblemCount;return new mo((f=(t=n).buildName,s=t.requestedTasks,c=null==s?null:Wt(s," ",A,r=r!==A&&r)>=0,a=null==c||c,Bf().qd((i=t,e=f,u=s,o=a,function(n){n.ed(function(n){var t;if(Wi(n)>0){var r,i=Zi(n,0);r=function(n){return 97<=n&&n<=122||!(ji(n,128)<0)&&function(n){var t;return t=1===function(n){var t=n,r=ru(eu().h9_1,t),i=eu().h9_1[r],e=(i+eu().i9_1[r]|0)-1|0,u=eu().j9_1[r];if(t>e)return 0;var o=3&u;if(0===o){var f=2,s=i,c=0;if(c<=1)do{if(c=c+1|0,(s=s+(u>>f&127)|0)>t)return 3;if((s=s+(u>>(f=f+7|0)&127)|0)>t)return 0;f=f+7|0}while(c<=1);return 3}if(u<=7)return o;var a=t-i|0;return u>>zn(2,u<=31?a%2|0:a)&3}(n)||function(n){var t=ru(ou().k9_1,n);return t>=0&&n<(ou().k9_1[t]+ou().l9_1[t]|0)}(n),t}(n)}(i)?function(n){return function(n){var t=Pi(n).toUpperCase();if(t.length>1){var r;if(329===n)r=t;else{var i=Zi(t,0),e=t.substring(1).toLowerCase();r=Pi(i)+e}return r}return Pi(function(n){return function(n){var t=n;return 452<=t&&t<=460||497<=t&&t<=499?De(zn(3,(t+1|0)/3|0)):4304<=t&&t<=4346||4349<=t&&t<=4351?n:mi(n)}(n)}(n))}(n)}(i):Pi(i),t=ie(r)+n.substring(1)}else t=n;return t}(i.cacheAction)+" the configuration cache for ");var t=e;null==t||n.fd(t),null==e||n.ed(" build and ");var r=u;return null==(null==r?null:n.fd(r))&&n.ed("default"),n.ed(o?" tasks":" task"),lr()}))),function(n,t){var r=n.cacheActionDescription,i=null==r?null:vf(r),e=Bf().rd(function(n){var t=n.od_1.k(),r=df(t,"build configuration input");return t>0?r+" and will cause the cache to be discarded when "+(t<=1?"its":"their")+" value change":r}(t)),u=Bf().rd(function(n,t){var r=n.totalProblemCount,i=t.nd_1.k(),e=df(r,"problem");return r>i?e+", only the first "+i+" "+wf(i)+" included in this report":e}(n,t));return function(n,t){for(var r=0,i=n.length;r<i;){var e=n[r];r=r+1|0,null!=e&&t.d(e)}return t}([i,e,u],Lr())}(n,h),new bf("Gradle Configuration Cache",n.documentationLink),uf(new Zu(Ho().qc_1),Jn(On(h.nd_1),af)),uf(new Zu($o().qc_1),function(n){return Jn(On(n),hf)}(h.nd_1)),uf(new Zu(Ro().qc_1),Jn(On(h.od_1),sf)),uf(new Zu(Go().qc_1),Jn(On(h.pd_1),cf)),0===l?Ro():Ho())}(n));else{var t=n.problemsReport;zf(Ef("report"),pc(),function(n,t){for(var r=n.summaries,i=Nr(r.length),e=0,u=r.length;e<u;){var o,f=r[e];e=e+1|0;for(var s=f.problemId,c=Nr(s.length),a=0,h=s.length;a<h;){var l,_=s[a];a=a+1|0,l=new Cs(_.name,_.displayName),c.d(l)}o=new xs(c,f.count),i.d(o)}for(var v=i,d=function(n,t){for(var r=oi(),i=0,e=n.length;i<e;){var u=n[i];i=i+1|0;var o,f=Ln(u.problemId,":",A,A,A,A,Ds),s=r.v1(f);if(null==s){var c=Lr();r.h5(f,c),o=c}else o=s;o.d(u)}for(var a=r.o(),h=Nr(xt(a,10)),l=a.f();l.g();){for(var _,v=l.h(),d=v.i1(),g=Nr(xt(d,10)),w=d.f();w.g();){var b;b=Es(w.h(),null,!0),g.d(b)}var p,m=Hn(g),k=Dn(v.i1()),y=Ls(k,new Gu(Ns(Ts(k)).ed(" ("+v.i1().k()+")").j5()));n:{for(var q=t.f();q.g();){var B=q.h();if(zs(B.ff_1,k.problemId)){p=B;break n}}p=null}var C=p;null==C||m.d(js(C.gf_1)),_=new ks(y,m),h.d(_)}var x=h;return new cs(new ks(new Us("message tree root"),x))}(t,v),g=function(n,t){for(var r=function(){var n=Lr();return new Is(new ks(new Vs(Bf().rd("Ungrouped"),!0),n),n,oi())}(),i=oi(),e=0,u=n.length;e<u;){var o=n[e];e=e+1|0;for(var f=$n(Tn(o.problemId,1)),s=Nr(xt(f,10)),c=f.f();c.g();){var a,h=c.h();a=new Cs(h.name,h.displayName),s.d(a)}var l=Ss(i,s),_=Es(o);null==l?r.if_1.d(_):l.if_1.d(_)}for(var v=Nr(xt(t,10)),d=t.f();d.g();){var g,w=d.h();g=new xs($n(Gn(w.ff_1,1)),w.gf_1),v.d(g)}for(var b=oi(),p=v.f();p.g();){var m,k=p.h(),y=k.ff_1,q=b.v1(y);if(null==q){var B=Lr();b.h5(y,B),m=B}else m=q;m.d(k)}for(var C=b.o(),x=Nr(xt(C,10)),j=C.f();j.g();){for(var P,I=j.h(),S=I.j1(),z=0,E=I.i1().f();E.g();)z=z+E.h().gf_1|0;P=new xs(S,z),x.d(P)}for(var T=x.f();T.g();){var L=T.h(),N=Ss(i,L.ff_1),A=null==N?null:N.if_1;null==A||A.d(js(L.gf_1))}for(var M=i.w1(),F=Nr(xt(M,10)),D=M.f();D.g();){var O;O=D.h().hf_1,F.d(O)}var R=function(n,t){var r=Nr(n.k());return r.m(n),r.d(t),r}(F,r.hf_1);return new cs(new ks(new Us("group tree root"),R))}(t,v),w=0,b=v.f();b.g();)w=w+b.h().gf_1|0;var p=function(n,t){for(var r=Lr(),i=oi(),e=0,u=n.length;e<u;){var o=n[e];e=e+1|0;var f=o.locations;if(null==f||0===f.length)r.d(Es(o));else{var s,c=o.locations;if(null==c)s=null;else{for(var a=Lr(),h=Ri(c);h.g();){var l=h.h();null!=l.path&&a.d(l)}s=a}if(null==s);else for(var _=s.f();_.g();){var v=_.h();Ps(i,he(v.path),o,v)}var d,g=o.locations;if(null==g)d=null;else{for(var w=Lr(),b=Ri(g);b.g();){var p=b.h();null!=p.pluginId&&w.d(p)}d=w}if(null==d);else for(var m=d.f();m.g();){var k=m.h();Ps(i,he(k.pluginId),o,k)}var y,q=o.locations;if(null==q)y=null;else{for(var B=Lr(),C=Ri(q);C.g();){var x=C.h();null!=x.taskPath&&B.d(x)}y=B}if(null==y);else for(var j=y.f();j.g();){var P=j.h();Ps(i,he(P.taskPath),o,P)}}}var I=function(n,t,r){for(var i=n.w1(),e=Nr(xt(i,10)),u=i.f();u.g();){var o;o=u.h().t3_1,e.d(o)}var f=Hn(e);return t.i()||f.d(new ks(new Vs(Bf().rd("no location"),!0),t)),r>0&&f.d(js(r)),f}(i,r,t);return new cs(new ks(new Us("text"),I))}(t,w);return new Js(Bf().rd("Problems Report"),function(n,t){var r,i,e,u=n.description,o=null==u?null:gr(vf(u));return r=null==o?gr(Bf().qd((i=t,e=n,function(n){n.ed(i.length+" problems have been reported during the execution");var t=e.buildName;null==t||(n.ed(" of build "),n.fd(t));var r=e.requestedTasks;return null==r||(n.ed(" for the following tasks:"),n.fd(r),lr()),lr()}))):o,r}(n,t),new bf("reporting problems",n.documentationLink),d,g,p,t.length,function(n,t,r){return lo(r)>0?Gs():lo(n)>0?Hs():lo(t)>0?$s():Hs()}(d,g,p))}(t,n.diagnostics))}}(),n}(void 0===this["configuration-cache-report"]?{}:this["configuration-cache-report"])}}[70](),{}))));
-//# sourceMappingURL=configuration-cache-report.js.map
-                </script>
-
-</body>
-</html>
 
build/resources/main/application.yml (deleted)
--- build/resources/main/application.yml
@@ -1,89 +0,0 @@
-server:
-  port: 9090
-  servlet:
-    context-path: '/'
-
-spring:
-  # \uc218\ub3d9 Bean\uc774 \uc790\ub3d9 Bean\uc744 \uc624\ubc84\ub77c\uc774\ub529\ud558\uac8c \uc124\uc815
-  main:
-    allow-bean-definition-overriding: true
-  # open-in-view(\ud639\uc740 Open-Session-In-View(OSIV))
-  # true(\uae30\ubcf8\uac12) : \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc751\ub2f5 \ub610\ub294 view\uac00 \ub80c\ub354\ub9c1\ub420 \ub54c\uae4c\uc9c0 \uc601\uc18d\uc131 \ucee8\ud14d\uc2a4\ud2b8 \uc720\uc9c0
-  # false : \ud2b8\ub79c\uc81d\uc158\uc774 \uc885\ub8cc\ub420 \ub54c \uc601\uc18d\uc131 \ucee8\ud14d\uc2a4\ud2b8 \uc885\ub8cc
-  jpa:
-    open-in-view: false
-  #Datasource Configuration
-  cms:
-    datasource:
-      driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-      jdbc-url: jdbc:log4jdbc:postgresql://210.180.118.83:5432/cms_portal?currentSchema=cms
-      username: takensoft
-      password: tts96314728!@
-
-  # 오라클 설정
-#  ums:
-#    datasource:
-#      driver-class-name: oracle.jdbc.OracleDriver
-#      jdbc-url: jdbc:oracle:thin:@localhost:1521:xe
-#      username: c##test1
-#      password: 1234
-
-  sql:
-    init:
-      platform: postgres
-
-  servlet:
-    multipart:
-      max-file-size: 500MB
-      max-request-size: 500MB
-
-  # 캐시 설정
-  cache:
-    type: caffeine
-    caffeine:
-      spec: maximumSize=100, expireAfterAccess=1h
-  web:
-    resources:
-      # static-locations: file:///C:/uploadFiles/, classpath:/static/
-      static-locations: /home/cloud-user/uploadFiles
-
-# Mybatis settings
-#mybatis:
-#  type-aliases-package: com.takensoft.**.**.vo, com.takensoft.**.**.dto, com.takensoft.common
-#  mapper-locations: classpath:mybatis/mapper/**/*-SQL.xml
-#  configuration:
-#    cache-enabled: true # mapper 캐시 전역 사용여부
-#    lazy-loading-enabled: false # MyBatis 지연 로딩 사용여부
-#    multiple-result-sets-enabled: true # 한 개의 구문에서 여러 개의 ResultSet 허용 여부
-#    use-column-label: true # 컬럼명 대신 컬럼 라벨 사용 여부
-#    use-generated-keys: false # 키 자동 생성
-#    default-executor-type: SIMPLE
-#    default-statement-timeout: 25000
-#    call-setters-on-nulls: true
-#    map-underscore-to-camel-case: true # 카멜케이스 사용
-
-# jwt
-jwt:
-  secret: akdnciepwlmdkcngpqktmektakensoftepckdbnskqmdkfsdflksdfoasjkdfbasdfasdfwerhjjhkgdfgdfseasdfef
-  accessTime: 600000      # 10분 600000
-  refreshTime: 86400000   # 24시간 86400000
-
-# cookie 유지 시간 -> jwt refreshToken과 동일하게 지정
-cookie:
-  time: 86400 # 24시간
-
-# frontUrl
-front:
-  url: http://localhost:8080
-
-# 암복호화
-crypto:
-  secret: takensoftcms2024!@#
-  vector: takensoft2024cms!@#
-
-password:
-  reset: 1234
-
-file:
-  file-upload-path: /fileUpload/
-  edit-file-upload-path: /editFileUpload/(No newline at end of file)
 
build/resources/main/message/messages_en.yml (deleted)
--- build/resources/main/message/messages_en.yml
@@ -1,55 +0,0 @@
-# 공통 에러
-common:
-  success: "Successfully processed."
-  unknown: "An error has occurred."
-  bad_request: "Bad request."
-  null_point: "A null value occurred."
-  illegal_argument: "Invalid argument provided."
-  method_not_allowed: "Unsupported HTTP method."
-  not_found: "No information found."
-  insert_fail: "Registration failed."
-  update_fail: "Edit failed."
-  delete_fail: "Deletion failed."
-  payload_too_large : "File size limit exceeded."
-  duplication_code: "This code already exists."
-  duplication_data: "This data already exists."
-
-
-# 네트워크 관련
-network:
-  unknown_host: "Request to an unknown host."
-
-# SQL 관련
-sql:
-  null_value: "Null value violation in SQL query."
-  duplicate_key: "Duplicate key violation in SQL query."
-  data_integrity: "Data integrity violation in SQL query."
-  unknown: "An unknown SQL error occurred."
-
-# jwt 인증 관련
-jwt:
-  expired: "Login session has expired."
-  signature_invalid: "Invalid token type."
-  insufficient_authentication: "Insufficient authentication information."
-
-# 접근 관련
-access:
-  denied: "Access is denied."
-  unauthorized: "Unauthorized access."
-
-# 사용자 관련
-user:
-  signup:
-    id_taken: "The userid is already in use."
-    email_taken: "The email is already in use."
-    success: "Registration completed successfully."
-  login:
-    user_not_found: "User information does not exist."
-    invalid_credentials: "Incorrect password."
-    authentication_required: "Authentication request was denied."
-    account_locked: "Account is locked."
-    account_disabled: "Account is disabled."
-    account_expired: "Account has expired."
-    credentials_expired: "Password has expired."
-  logout:
-    success: "You have been logged out."(No newline at end of file)
 
build/resources/main/message/messages_ko.yml (deleted)
--- build/resources/main/message/messages_ko.yml
@@ -1,55 +0,0 @@
-# 공통
-common:
-  success: "정상 처리되었습니다."
-  unknown: "오류가 발생했습니다."
-  bad_request: "잘못된 요청입니다."
-  null_point: "Null 값이 발생했습니다."
-  illegal_argument: "잘못된 인자가 전달되었습니다."
-  method_not_allowed: "지원하지 않는 HTTP 메서드입니다."
-  not_found: "정보를 찾을 수 없습니다."
-  insert_fail: "등록에 실패했습니다."
-  update_fail: "수정에 실패했습니다."
-  delete_fail: "삭제에 실패했습니다."
-  payload_too_large: "파일 용량 제한을 초과했습니다."
-  duplication_code: "이미 존재하는 코드입니다."
-  duplication_data: "이미 존재하는 정보입니다."
-
-# 네트워크 관련
-network:
-  unknown_host: "알 수 없는 호스트에 대한 요청입니다."
-
-
-# SQL 관련
-sql:
-  null_value: "SQL Query에서 NULL 값이 발생했습니다."
-  duplicate_key: "SQL Query에서 중복 키가 발생했습니다."
-  data_integrity: "SQL Query에서 데이터 무결성을 위반했습니다."
-  unknown: "SQL Query 오류가 발생했습니다."
-
-# jwt 인증 관련
-jwt:
-  expired: "로그인 시간이 만료되었습니다."
-  signature_invalid: "잘못된 토큰 유형입니다."
-  insufficient_authentication: "인증 정보가 부족합니다."
-
-# 접근 관련
-access:
-  denied: "접근 권한이 없습니다."
-  unauthorized: "잘못된 접근입니다."
-
-# 사용자 관련
-user:
-  signup:
-    id_taken: "이미 사용중인 아이디입니다."
-    email_taken: "이미 사용중인 이메일입니다."
-    success: "회원가입이 정상처리 되었습니다."
-  login:
-    user_not_found: "회원정보가 존재하지 않습니다."
-    invalid_credentials: "비밀번호가 일치하지 않습니다."
-    authentication_required: "인증 요구가 거부되었습니다."
-    account_locked: "계정이 잠겼습니다."
-    account_disabled: "계정이 비활성화 되어있습니다."
-    account_expired: "계정 유효기간이 만료되었습니다."
-    credentials_expired: "계정 비밀번호 유효기간이 만료되었습니다."
-  logout:
-    success: "로그아웃 되었습니다."
 
build/resources/main/mybatis/mapper/accesCtrl/accesCtrl-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/accesCtrl/accesCtrl-SQL.xml
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.09
-    내 용 : 접근 제어 관리 관련
--->
-<mapper namespace="com.takensoft.cms.accesCtrl.dao.AccesCtrlDAO">
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 접근 제어 등록
-    -->
-    <insert id="save" parameterType="AccesCtrlVO" useGeneratedKeys="true" keyProperty="acsCntrlId">
-        INSERT INTO acs_cntrl_mng (
-            cntrl_type
-            , cntrl_ip
-            , cntrl_crs
-            , use_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{cntrlType}
-            , #{cntrlIp}
-            , #{cntrlCrs}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.15
-        내 용 : 접근 제어 수정
-    -->
-    <update id="update" parameterType="AccesCtrlVO">
-        UPDATE acs_cntrl_mng
-           SET cntrl_type = #{cntrlType}
-             , cntrl_ip = #{cntrlIp}
-             , cntrl_crs = #{cntrlCrs}
-             , use_yn = #{useYn}
-             , mdfr = #{mdfr}
-             , mdfcn_dt = NOW()
-         WHERE acs_cntrl_id = #{acsCntrlId}
-    </update>
-
-    <sql id="selectAccesCtrl">
-        SELECT acm.acs_cntrl_id
-             , acm.cntrl_type
-             , cm.cd_nm     AS cntrl_type_nm
-             , acm.cntrl_ip
-             , acm.cntrl_crs
-             , acm.use_yn
-             , acm.rgtr
-             , TO_CHAR(acm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , acm.mdfr
-             , TO_CHAR(acm.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-          FROM acs_cntrl_mng acm
-     LEFT JOIN cd_mng cm
-            ON acm.cntrl_type = cm.cd
-    </sql>
-
-    <sql id="selectRequirement">
-        <if test="searchText != null and searchText != ''">
-            <choose>
-                <when test="searchType != null and searchType != ''">
-                    <if test="searchType == 'ip'">
-                        AND acm.cntrl_ip LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'crs'">
-                        AND acm.cntrl_crs LIKE '%' || #{searchText} || '%'
-                    </if>
-                </when>
-                <otherwise>
-                    AND (
-                        acm.cntrl_ip LIKE '%' || #{searchText} || '%'
-                    OR
-                        acm.cntrl_crs LIKE '%' || #{searchText} || '%'
-                    )
-                </otherwise>
-            </choose>
-        </if>
-    </sql>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.12
-        내 용 : 접근 제어 조회(관리자 페이지용)
-    -->
-    <select id="findAll" parameterType="Pagination" resultType="AccesCtrlVO">
-        <include refid="selectAccesCtrl" />
-        WHERE acm.use_yn = 'Y'
-        <include refid="selectRequirement" />
-        ORDER BY COALESCE(acm.mdfcn_dt, acm.reg_dt) DESC
-        LIMIT #{recordSize} OFFSET #{limitStart}
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.18
-        내 용 : 접근제어 목록 갯수(관리자 페이지용)
-    -->
-    <select id="findAllCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(acm.acs_cntrl_id)
-          FROM acs_cntrl_mng acm
-         WHERE acm.use_yn = 'Y'
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.12
-        내 용 : 접근 제어 조회(시스템용 - 시큐리티 접근 제어)
-    -->
-    <select id="findAllAccesCtrlSecurity" parameterType="String" resultType="AccesCtrlVO">
-        <include refid="selectAccesCtrl" />
-        WHERE acm.use_yn = 'Y'
-          AND acm.cntrl_ip = #{ip}
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.12
-        내 용 : 접근 제어 상세 조회
-    -->
-    <select id="findByAccesCtrl" parameterType="Integer" resultType="AccesCtrlVO">
-        <include refid="selectAccesCtrl" />
-        WHERE acm.acs_cntrl_id = #{acsCntrlId}
-          AND acm.use_yn = 'Y'
-    </select>
-
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/author/author-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/author/author-SQL.xml
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.01
-    내 용 : 권한 정보 관련
--->
-<mapper namespace="com.takensoft.cms.author.dao.AuthorDAO">
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.05
-        내 용 : 권한 코드 중복 확인
-    -->
-    <select id="findByCheckAuthorCode" parameterType="AuthorVO" resultType="boolean">
-        SELECT COUNT(authrt_cd)
-          FROM authrt_info
-         WHERE authrt_cd = #{authrtCd}
-         <if test="originAuthrtCd != null and originAuthrtCd != ''">
-           AND authrt_cd != #{originAuthrtCd}
-         </if>
-    </select>
-
-    <sql id="selectAuthrt">
-         SELECT ai.authrt_cd
-             , ai.authrt_nm
-             , ai.authrt_expln
-             , ai.use_yn
-             , ai.sys_pvsn_yn
-             , ai.rgtr
-             , (SELECT mbr_nm FROM mbr_info WHERE mbr_id = ai.rgtr) AS rgtr_nm
-             , TO_CHAR(ai.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , ai.mdfr
-             , (SELECT mbr_nm FROM mbr_info WHERE mbr_id = ai.mdfr) AS mdfr_nm
-             , TO_CHAR(ai.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-          FROM authrt_info ai
-    </sql>
-
-    <sql id="selectRequirement">
-        <if test="searchText != null and searchText != ''">
-            AND ai.authrt_nm LIKE '%' || #{searchText} || '%'
-        </if>
-    </sql>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.25
-        내 용 : 전체 권한 목록 조회(신규 메뉴 등록 시 권한을 주기 위해 사용)
-    -->
-    <select id="findAllSystem" resultType="AuthorVO">
-        <include refid="selectAuthrt" />
-        WHERE ai.use_yn = 'Y'
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.05
-        내 용 : 권한 목록 조회
-    -->
-    <select id="findAll" parameterType="Pagination" resultType="AuthorVO">
-        <include refid="selectAuthrt" />
-         WHERE ai.use_yn = 'Y'
-        <include refid="selectRequirement" />
-        LIMIT #{recordSize} OFFSET #{limitStart}
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.25
-        내 용 : 권한 목록 갯수 조회
-    -->
-    <select id="findAllCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(ai.authrt_cd)
-          FROM authrt_info ai
-         WHERE ai.use_yn = 'Y'
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.05
-        내 용 : 권한 상세 조회
-    -->
-    <select id="findByAuthorCode" parameterType="String" resultType="AuthorVO">
-        <include refid="selectAuthrt" />
-         WHERE ai.authrt_cd = #{authrtCd}
-           AND ai.use_yn = 'Y'
-    </select>
-
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.05
-        내 용 : 권한 등록
-    -->
-    <insert id="save" parameterType="AuthorVO">
-        INSERT INTO authrt_info (
-            authrt_cd
-            , authrt_nm
-            , authrt_expln
-            , use_yn
-            , sys_pvsn_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{authrtCd}
-            , #{authrtNm}
-            , #{authrtExpln}
-            , #{useYn}
-            , 1
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.04.05
-       내 용 : 권한 수정
-   -->
-    <update id="update" parameterType="AuthorVO">
-        UPDATE authrt_info
-           SET authrt_cd = #{authrtCd}
-             , authrt_nm = #{authrtNm}
-             , authrt_expln = #{authrtExpln}
-             , use_yn = #{useYn}
-             , mdfr = #{mdfr}
-             , mdfcn_dt = NOW()
-        WHERE authrt_cd = #{originAuthrtCd}
-    </update>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/bbs/bbsCn-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/bbs/bbsCn-SQL.xml
@@ -1,515 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작 성 자 : 하석형
-    작 성 일 : 2024.05.09
-    내   용 : 게시판 내용 관련
--->
-<mapper namespace="com.takensoft.cms.bbs.dao.BbsCnDAO">
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : (미사용)게시판 내용 아이디 중복 확인
-    -->
-    <select id="bbsCnIdCheck" resultType="boolean">
-        SELECT COUNT(bbs_id)
-        FROM bbs_cn
-        WHERE bbs_id = #{bbsId}
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 등록
-    -->
-    <insert id="save" parameterType="BbsCnVO">
-        INSERT INTO bbs_cn (
-              bbs_id
-            , bbs_mng_id
-            , bbs_nm
-            , bbs_cn
-            , inq_cnt
-            , atch_file_mng_id
-            , img_file_mng_id
-            , ntc_pst_yn
-            , ntc_bgng_dt
-            , ntc_end_dt
-            , prvt_pst_yn
-            , ans_bbs_id
-            , ans_cn
-            , ans_grd
-            , ans_sn
-            , ans_stts
-            , vdo_url
-            , use_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{bbsId}
-            , #{bbsMngId}
-            , #{bbsNm}
-            , #{bbsCn}
-            , #{inqCnt}
-            , #{atchFileMngId}
-            , #{imgFileMngId}
-            , #{ntcPstYn}
-            , #{ntcBgngDt}::TIMESTAMP
-            , #{ntcEndDt}::TIMESTAMP
-            , #{prvtPstYn}
-            , #{ansBbsId}
-            , #{ansCn}
-            , #{ansGrd}
-            , #{ansSn}
-            , #{ansStts}
-            , #{vdoUrl}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 SQL
-    -->
-    <sql id="selectBbsCn">
-        SELECT
-            bbs_id
-            , bbs_mng_id
-            , bbs_nm
-            , bbs_cn
-            , inq_cnt
-            , atch_file_mng_id
-            , img_file_mng_id
-            , ntc_pst_yn
-            , ntc_bgng_dt
-            , ntc_end_dt
-            , prvt_pst_yn
-            , ans_bbs_id
-            , ans_cn
-            , ans_grd
-            , ans_sn
-            , ans_stts
-            , answer
-            , mi3.mbr_nm AS answer_nm
-            , to_char(bc.ans_dt, 'YYYY-MM-DD HH24:MI') AS ans_dt
-            , vdo_url
-            , bc.use_yn
-            , bc.rgtr
-            , to_char(bc.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-            , mi.mbr_nm AS rgtr_nm
-            , bc.mdfr
-            , to_char(bc.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-            , mi2.mbr_nm AS mdfr_nm
-        FROM bbs_cn bc
-        LEFT JOIN
-            mbr_info mi
-        ON
-            bc.rgtr = mi.mbr_id
-        LEFT JOIN
-             mbr_info mi2
-         ON
-             bc.mdfr = mi2.mbr_id
-        LEFT JOIN
-             mbr_info mi3
-             ON
-                 bc.mdfr = mi3.mbr_id
-    </sql>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 SQL
-    -->
-    <sql id="selectBbsCnDetail">
-        SELECT
-            bbs_id
-             , bbs_mng_id
-             , bbs_nm
-             , bbs_cn
-             , inq_cnt
-             , atch_file_mng_id
-             , img_file_mng_id
-             , ntc_pst_yn
-             , ntc_bgng_dt
-             , ntc_end_dt
-             , prvt_pst_yn
-             , ans_bbs_id
-             , ans_cn
-             , ans_grd
-             , ans_sn
-             , ans_stts
-             , answer
-             , ans_dt
-             , vdo_url
-             , use_yn
-             , rgtr
-             , reg_dt
-             , mdfr
-             , mdfcn_dt
-    </sql>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 목록 조회 검색 조건 SQL
-    -->
-    <sql id="selectRequirement">
-        <if test="searchText != null and searchText != ''">
-            <choose>
-                <when test="searchType != null and searchType != ''">
-                    <if test="searchType == 'bbsNm'">
-                        AND bbs_nm LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'mbrNm'">
-                        AND mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'bbsCn'">
-                        AND bbs_cn LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'ansCn'">
-                        AND ans_cn LIKE '%' || #{searchText} || '%'
-                    </if>
-                </when>
-                <otherwise>
-                    AND (
-                       bbs_nm LIKE '%' || #{searchText} || '%'
-                    OR mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    OR bbs_cn LIKE '%' || #{searchText} || '%'
-                    OR ans_cn LIKE '%' || #{searchText} || '%'
-                    )
-
-                </otherwise>
-            </choose>
-        </if>
-    </sql>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 목록 조회 개수
-    -->
-    <select id="findAllCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(bbs_id)
-          FROM bbs_cn bc
-          LEFT JOIN
-               mbr_info mi
-            ON
-               bc.rgtr = mi.mbr_id
-          LEFT JOIN
-               mbr_info mi2
-            ON
-               bc.mdfr = mi2.mbr_id
-         WHERE bc.use_yn = 'Y'
-           AND bc.bbs_mng_id = #{id}
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 목록 조회
-    -->
-    <select id="findAllsub" parameterType="Pagination" resultType="BbsCnVO">
-        <include refid="selectBbsCn" />
-        WHERE bc.use_yn = 'Y'
-        AND bc.bbs_mng_id = #{id}
-        <include refid="selectRequirement" />
-        ORDER BY bbs_id DESC
-        OFFSET #{limitStart} LIMIT #{recordSize}
-    </select>
-
-    <select id="findAll" parameterType="Pagination" resultType="BbsCnVO">
-        select  bbs_id
-              , bbs_mng_id
-              , bbs_nm
-              , bbs_cn
-              , inq_cnt
-              , atch_file_mng_id
-              , img_file_mng_id
-              , ntc_pst_yn
-              , ntc_bgng_dt
-              , ntc_end_dt
-              , prvt_pst_yn
-              , ans_bbs_id
-              , ans_cn
-              , ans_grd
-              , ans_sn
-              , ans_stts
-              , answer
-              , mi3.mbr_nm AS answer_nm
-              , to_char(bc.ans_dt, 'YYYY-MM-DD HH24:MI') AS ans_dt
-              , vdo_url
-              , bc.use_yn
-              , bc.rgtr
-              , to_char(bc.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-              , bc.mdfr
-              , to_char(bc.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-              , bc.now_ntc_yn
-              , mi.mbr_nm AS rgtr_nm
-              , mi2.mbr_nm AS mdfr_nm
-              , cf.abslt_path AS abslt_path
-          from( SELECT bbs_id
-                     , bbs_mng_id
-                     , bbs_nm
-                     , bbs_cn
-                     , inq_cnt
-                     , atch_file_mng_id
-                     , img_file_mng_id
-                     , ntc_pst_yn
-                     , ntc_bgng_dt
-                     , ntc_end_dt
-                     , prvt_pst_yn
-                     , ans_bbs_id
-                     , ans_cn
-                     , ans_grd
-                     , ans_sn
-                     , ans_stts
-                     , answer
-                     , ans_dt
-                     , vdo_url
-                     , use_yn
-                     , rgtr
-                     , reg_dt
-                     , mdfr
-                     , mdfcn_dt
-                     , 'Y' as now_ntc_yn
-                  from bbs_cn bc
-                 WHERE use_yn = 'Y'
-                   AND ntc_pst_yn = 'Y'
-       <![CDATA[   AND ntc_bgng_dt <= CURRENT_TIMESTAMP AND ntc_end_dt >= CURRENT_TIMESTAMP ]]>
-                 union all
-                SELECT bbs_id
-                     , bbs_mng_id
-                     , bbs_nm
-                     , bbs_cn
-                     , inq_cnt
-                     , atch_file_mng_id
-                     , img_file_mng_id
-                     , ntc_pst_yn
-                     , ntc_bgng_dt
-                     , ntc_end_dt
-                     , prvt_pst_yn
-                     , ans_bbs_id
-                     , ans_cn
-                     , ans_grd
-                     , ans_sn
-                     , ans_stts
-                     , answer
-                     , ans_dt
-                     , vdo_url
-                     , use_yn
-                     , rgtr
-                     , reg_dt
-                     , mdfr
-                     , mdfcn_dt
-                     , 'N' as now_ntc_yn
-                  from bbs_cn bc
-                 WHERE use_yn = 'Y'
-        <![CDATA[  and (ntc_pst_yn ='N' or ntc_bgng_dt > CURRENT_TIMESTAMP or ntc_end_dt < CURRENT_TIMESTAMP) ]]>
-        )as bc
-         LEFT JOIN mbr_info mi
-           ON bc.rgtr = mi.mbr_id
-         LEFT JOIN mbr_info mi2
-           ON bc.mdfr = mi2.mbr_id
-         LEFT JOIN mbr_info mi3
-           ON bc.answer = mi3.mbr_id
-         LEFT JOIN (
-             SELECT cf2.file_id
-                  , cf2.file_mng_id
-                  , cf2.abslt_path
-               FROM cmmn_file cf2
-              INNER JOIN (
-                   SELECT file_mng_id
-                        , MIN(file_id) AS min_id
-                     FROM cmmn_file
-                    GROUP BY file_mng_id
-               ) AS cf_min
-                 ON  cf2.file_id = cf_min.min_id
-         ) AS cf
-           ON bc.img_file_mng_id = cf.file_mng_id
-        WHERE bbs_mng_id = #{id}
-        <include refid="selectRequirement" />
-        ORDER BY bc.now_ntc_yn DESC, bc.reg_dt DESC
-        OFFSET #{limitStart} LIMIT #{recordSize}
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 상세 조회
-    -->
-    <select id="findByBbsId" parameterType="String" resultType="BbsCnVO">
-        <include refid="selectBbsCn" />
-        WHERE bc.bbs_id = #{bbsId}
-        AND bc.use_yn = 'Y'
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 수정
-    -->
-    <update id="update" parameterType="HashMap">
-        UPDATE
-            bbs_cn
-        SET
-            bbs_nm = #{bbsNm}
-            , bbs_cn = #{bbsCn}
-            , inq_cnt = #{inqCnt}
-            , atch_file_mng_id = #{atchFileMngId}
-            , img_file_mng_id = #{imgFileMngId}
-            , ntc_pst_yn = #{ntcPstYn}
-            , ntc_bgng_dt = #{ntcBgngDt}::TIMESTAMP
-            , ntc_end_dt = #{ntcEndDt}::TIMESTAMP
-            , prvt_pst_yn = #{prvtPstYn}
-            , ans_bbs_id = #{ansBbsId}
-            , ans_cn = #{ansCn}
-            , ans_grd = #{ansGrd}
-            , ans_sn = #{ansSn}
-            , ans_stts = #{ansStts}
-            , vdo_url = #{vdoUrl}
-            , use_yn = #{useYn}
-            , mdfr = #{mdfr}
-            , mdfcn_dt = NOW()
-        WHERE bbs_id = #{bbsId}
-    </update>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 내용 삭제
-    -->
-    <update id="delete" parameterType="BbsCnVO">
-        UPDATE
-            bbs_cn
-        SET
-            use_yn = 'N'
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE bbs_id = #{bbsId}
-    </update>
-    <!--
-        작 성 자 : 방선주
-        작 성 일 : 2024.05.22
-        내   용 : 조회수 증가 로직
-    -->
-    <update id="updateVwCnt" parameterType="String">
-        UPDATE
-            bbs_cn
-        SET
-            inq_cnt = inq_cnt + 1
-        WHERE bbs_id = #{bbsId}
-    </update>
-
-    <!--
-        작 성 자 : 방선주
-        작 성 일 : 2024.05.23
-        내   용 : 이전글
-    -->
-    <select id="findPrevBbsCn" parameterType="BbsCnVO" resultType="BbsCnVO">
-        <include refid="selectBbsCnDetail"/>
-              FROM bbs_cn
-             WHERE use_yn  = 'Y'
-               AND bbs_mng_id = #{bbsMngId}
-         <![CDATA[  AND bbs_id < #{bbsId} ]]>
-            ORDER BY bbs_id DESC
-            LIMIT 1
-    </select>
-
-    <!--
-        작 성 자 : 방선주
-        작 성 일 : 2024.05.23
-        내   용 : 다음글
-    -->
-    <select id="findNextBbsCn" parameterType="BbsCnVO" resultType="BbsCnVO">
-        <include refid="selectBbsCnDetail"/>
-        FROM bbs_cn
-        WHERE use_yn  = 'Y'
-          AND bbs_mng_id = #{bbsMngId}
-         <![CDATA[  AND bbs_id > #{bbsId} ]]>
-            ORDER BY bbs_id ASC
-            LIMIT 1
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.28
-        내   용 : 게시글 최신 목록 조회 (최신글 5건 출력)
-    -->
-    <select id="selectBbsCnListByNew" resultType="HashMap">
-        SELECT bc.bbs_mng_id as mng_id
-             , bc.bbs_id as id
-             , btm.bbs_type AS type
-             , bm.bbs_nm AS nm
-             , bc.bbs_nm AS ttl
-             , bc.bbs_cn AS cn
-             , bc.ans_cn AS ans
-             , (SELECT mi.mbr_nm FROM mbr_info AS mi WHERE mi.mbr_id = bc.rgtr) AS writer
-             , TO_CHAR(bc.reg_dt, 'YYYY-MM-DD HH24:MI') AS dt
-          FROM bbs_cn AS bc
-     LEFT JOIN bbs_mng AS bm
-            ON bc.bbs_mng_id = bm.bbs_mng_id
-           AND bm.use_yn = 'Y'
-     LEFT JOIN bbs_type_mng AS btm
-            ON bm.bbs_type_id = btm.bbs_type_id
-           AND btm.use_yn = 'Y'
-         WHERE bc.use_yn = 'Y'
-      ORDER BY bc.reg_dt DESC
-         LIMIT 5
-    </select>
-
-    <!--
-        작 성 자 : 방선주
-        작 성 일 : 2024.06.04
-        내   용 : 질의형 게시판 답변
-    -->
-    <update id="saveAnswer" parameterType="BbsCnVO">
-        UPDATE
-            bbs_cn
-        SET ans_cn = #{ansCn}
-          , ans_stts = #{ansStts}
-          , answer = #{answer}
-          , ans_dt = now()
-        WHERE bbs_id = #{bbsId};
-    </update>
-
-    <!--
-       작 성 자 : 방선주
-       작 성 일 : 2024.06.13
-       내   용 : 최근공지 5개 조회
-   -->
-    <select id="findFiveNotice" resultType="BbsCnVO">
-        SELECT bbs_id
-             , bbs_mng_id
-             , bbs_nm
-             , bbs_cn
-             , inq_cnt
-             , atch_file_mng_id
-             , img_file_mng_id
-             , ntc_pst_yn
-             , ntc_bgng_dt
-             , ntc_end_dt
-             , prvt_pst_yn
-             , ans_bbs_id
-             , ans_cn
-             , ans_grd
-             , ans_sn
-             , ans_stts
-             , answer
-             , ans_dt
-             , vdo_url
-             , use_yn
-             , rgtr
-             , TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mdfr
-             , TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-          FROM bbs_cn
-         WHERE use_yn  = 'Y'
-           AND bbs_mng_id = #{bbsMngId}
-         ORDER BY bbs_id DESC
-         LIMIT 5
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/bbs/bbsMng-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/bbs/bbsMng-SQL.xml
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : 박정하
-    작성일 : 2024.05.08
-    내 용 : 게시판 관리 관련
--->
-<mapper namespace="com.takensoft.cms.bbs.dao.BbsMngDAO">
-    <!-- 게시판 관리 resultMap -->
-    <resultMap id="bbsMngMap" type="BbsMngVO">
-        <result property="bbsMngId" column="bbs_mng_id" />
-        <result property="bbsTypeId" column="bbs_type_id" />
-        <result property="bbsNm" column="bbs_nm" />
-        <result property="bbsUpInfo" column="bbs_up_info" />
-        <result property="bbsExpln" column="bbs_expln" />
-        <result property="artclCnt" column="artcl_cnt" />
-        <result property="atchFileUseYn" column="atch_file_use_yn" />
-        <result property="ntcUseYn" column="ntc_use_yn" />
-        <result property="fileExtnNm" column="file_extn_nm" />
-        <result property="fileSzLmt" column="file_sz_lmt" />
-        <result property="prvtPstUseYn" column="prvt_pst_use_yn" />
-        <result property="bfrAftrPstUseYn" column="bfr_aftr_pst_use_yn" />
-        <result property="useYn" column="use_yn" />
-        <result property="rgtr" column="rgtr" />
-        <result property="regDt" column="reg_dt" />
-        <result property="mdfr" column="mdfr" />
-        <result property="mdfcnDt" column="mdfcn_dt" />
-        <result property="cd" column="cd" />
-    </resultMap>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.08
-        내   용 : 게시판 관리 아이디 중복 확인
-    -->
-    <select id="bbsMngIdCheck" resultType="boolean">
-        SELECT COUNT(bbs_mng_id)
-        FROM bbs_mng
-        WHERE bbs_mng_id = #{bbsMngId}
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.10
-        내   용 : 게시판 관리 등록
-    -->
-    <insert id="save" parameterType="BbsMngVO">
-        INSERT INTO bbs_mng (
-            bbs_mng_id
-            , bbs_type_id
-            , bbs_nm
-            , bbs_up_info
-            , bbs_expln
-            , artcl_cnt
-            , atch_file_use_yn
-            , ntc_use_yn
-            , file_extn_nm
-            , file_sz_lmt
-            , prvt_pst_use_yn
-            , bfr_aftr_pst_use_yn
-            , cmnt_use_yn
-            , use_yn
-            , rgtr
-            , reg_dt
-            , cd
-        ) VALUES (
-            #{bbsMngId}
-            , #{bbsTypeId}
-            , #{bbsNm}
-            , #{bbsUpInfo}
-            , #{bbsExpln}
-            , #{artclCnt}
-            , #{atchFileUseYn}
-            , #{ntcUseYn}
-            , #{fileExtnNm}
-            , #{fileSzLmt}
-            , #{prvtPstUseYn}
-            , #{bfrAftrPstUseYn}
-            , #{cmntUseYn}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-            , #{cd}
-        )
-    </insert>
-
-    <sql id="selectBbsMng">
-        SELECT
-               bm.bbs_mng_id
-             , bm.bbs_type_id
-             , bbs_nm
-             , bbs_up_info
-             , bbs_expln
-             , artcl_cnt
-             , atch_file_use_yn
-             , ntc_use_yn
-             , file_extn_nm
-             , file_sz_lmt
-             , prvt_pst_use_yn
-             , bfr_aftr_pst_use_yn
-             , cmnt_use_yn
-             , bm.use_yn
-             , bm.rgtr
-             , to_char(bm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , bm.mdfr
-             , to_char(bm.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-             , cd
-
-    </sql>
-
-    <sql id="selectRequirement">
-        <if test="searchText != null and searchText != ''">
-            <choose>
-                <when test="searchType != null and searchType != ''">
-                    <if test="searchType == 'bbsTypeId'">
-                        AND bbs_type_id LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'bbsNm'">
-                        AND bbs_nm LIKE '%' || #{searchText} || '%'
-                    </if>
-                </when>
-                <otherwise>
-                    AND (
-                        bbs_type_id LIKE '%' || #{searchText} || '%'
-                    OR
-                        bbs_nm LIKE '%' || #{searchText} || '%'
-                    )
-                </otherwise>
-            </choose>
-        </if>
-    </sql>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.10
-        내   용 : 게시판 관리 목록 조회 개수
-    -->
-    <select id="findAllCnt" parameterType="Pagination" resultType="int">
-        SELECT COUNT(bbs_mng_id)
-        FROM bbs_mng
-        WHERE use_yn = 'Y'
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.10
-        내   용 : 게시판 관리 목록 조회
-    -->
-    <select id="findAll" parameterType="Pagination" resultType="BbsMngVO">
-        <include refid="selectBbsMng" />
-            , bc.bbs_cn_cnt
-        FROM bbs_mng bm
-        LEFT JOIN (
-             SELECT bbs_mng_id, count(bbs_mng_id) as bbs_cn_cnt
-               FROM bbs_cn
-              WHERE use_yn = 'Y'
-              GROUP BY bbs_mng_id
-        ) bc
-        ON bm.bbs_mng_id = bc.bbs_mng_id
-        WHERE bm.use_yn = 'Y'
-        <include refid="selectRequirement" />
-        ORDER BY bbs_mng_id DESC
-        OFFSET #{limitStart} LIMIT #{recordSize}
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.16
-        내   용 : 게시판 관리 목록 조회 (메뉴 관리용)
-    -->
-    <select id="findAllByMenuMng" resultType="BbsMngVO">
-        <include refid="selectBbsMng" />
-        FROM bbs_mng bm
-        WHERE bm.use_yn = 'Y'
-        ORDER BY bbs_mng_id DESC
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.08
-        내   용 : 게시판 관리 상세 조회
-    -->
-    <select id="findByBbsMngId" parameterType="String" resultType="BbsMngVO">
-        <include refid="selectBbsMng" />
-        FROM bbs_mng bm
-        WHERE bm.bbs_mng_id = #{bbsMngId}
-        AND bm.use_yn = 'Y'
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 관리 수정
-    -->
-    <update id="update" parameterType="BbsMngVO">
-        UPDATE
-            bbs_mng
-        SET
-            bbs_type_id = #{bbsTypeId}
-            , bbs_nm = #{bbsNm}
-            , bbs_up_info = #{bbsUpInfo}
-            , bbs_expln = #{bbsExpln}
-            , artcl_cnt = #{artclCnt}
-            , atch_file_use_yn = #{atchFileUseYn}
-            , ntc_use_yn = #{ntcUseYn}
-            , file_extn_nm = #{fileExtnNm}
-            , file_sz_lmt = #{fileSzLmt}
-            , prvt_pst_use_yn = #{prvtPstUseYn}
-            , bfr_aftr_pst_use_yn = #{bfrAftrPstUseYn}
-            , cmnt_use_yn = #{cmntUseYn}
-            , use_yn = #{useYn}
-            , mdfr = #{mdfr}
-            , mdfcn_dt = NOW()
-            , cd = #{cd}
-        WHERE bbs_mng_id = #{bbsMngId}
-    </update>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.09
-        내   용 : 게시판 관리 삭제
-    -->
-    <update id="delete" parameterType="BbsMngVO">
-        UPDATE
-            bbs_mng
-        SET
-            use_yn = 'N'
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE bbs_mng_id = #{bbsMngId}
-    </update>
-
-
-
-    <!-- ********************************* 게시판 라우터 (시작) ********************************* -->
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.13
-        내   용 : 게시판 라우터 등록
-    -->
-    <insert id="saveBbsRouter" parameterType="BbsRouterVO">
-        INSERT INTO bbs_router (
-            bbs_router_id
-            , bbs_mng_id
-            , bbs_korn_nm
-            , bbs_eng_nm
-            , page_crs
-            , mngr_page_crs
-            , compn_crs
-            , expsr_yn
-            , use_yn
-            , reg_dt
-        ) VALUES (
-            #{bbsRouterId}
-            , #{bbsMngId}
-            , #{bbsKornNm}
-            , #{bbsEngNm}
-            , #{pageCrs}
-            , #{mngrPageCrs}
-            , #{compnCrs}
-            , #{expsrYn}
-            , 'Y'
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.13
-        내   용 : 게시판 라우터 수정
-    -->
-    <update id="updateBbsRouter" parameterType="BbsRouterVO">
-        UPDATE
-            bbs_router
-        SET
-            use_yn = 'N'
-        WHERE bbs_mng_id = #{bbsMngId}
-    </update>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.13
-        내   용 : 게시판 라우터 삭제
-    -->
-    <delete id="deleteBbsRouter" parameterType="String">
-        DELETE
-        FROM bbs_router
-        WHERE bbs_mng_id = #{bbsMngId}
-    </delete>
-
-    <!--
-       작 성 자 : 방선주
-       작 성 일 : 2024.06.04
-       내   용 : 게시판 라우터 목록 조회
-   -->
-    <select id="findAllBbsRouter" parameterType="String" resultType="BbsRouterVO">
-        SELECT bbs_router_id
-             , bbs_mng_id
-             , bbs_korn_nm
-             , bbs_eng_nm
-             , page_crs
-             , compn_crs
-             , expsr_yn
-             , use_yn
-             , reg_dt
-             , mngr_page_crs
-          FROM bbs_router
-         WHERE bbs_mng_id = #{bbsMngId}
-    </select>
-
-    <!--
-        작 성 자 : 방선주
-        작 성 일 : 2024.06.05
-        내   용 : 게시판 라우터 crs 수정
-    -->
-    <update id="updateCrs" parameterType="BbsRouterVO">
-        UPDATE
-            bbs_router
-        SET
-            page_crs = #{pageCrs}
-        WHERE bbs_router_id = #{bbsRouterId}
-    </update>
-    <!-- ********************************* 게시판 라우터 (종료) ********************************* -->
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.07.18
-        내   용 : 게시판 관리 목록 조회 개수 (접속 통계용)
-    -->
-    <select id="findAllCntNotPagination" resultType="int">
-        SELECT COUNT(bbs_mng_id)
-        FROM bbs_mng
-        WHERE use_yn = 'Y'
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/bbs/bbsRouter-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/bbs/bbsRouter-SQL.xml
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작 성 자 : 하석형
-    작 성 일 : 2024.05.09
-    내   용 : 게시판 내용 관련
--->
-<mapper namespace="com.takensoft.cms.bbs.dao.BbsRouterDAO">
-
-    <!-- 콘텐츠 조회(라우터 조회용 - 권한포함) -->
-    <resultMap id="bbsRouterAuthrtMap" type="ContsAuthrtVO">
-<!--        <result property="contsId" column="bbs_router_id" />-->
-        <result property="contsId" column="bbs_mng_id" />
-<!--        <result property="menuId" column="menu_id" />-->
-        <result property="contsKornNm" column="bbs_korn_nm" />
-        <result property="contsEngNm" column="bbs_eng_nm" />
-        <result property="pageCrs" column="page_crs" />
-        <result property="compnCrs" column="compn_crs" />
-        <collection property="authrtList" ofType="MenuAuthorVO">
-            <result property="authrtCd" column="authrt_cd" />
-            <result property="menuId" column="menu_id" />
-            <result property="inqAuthrt" column="inq_authrt" />
-            <result property="regAuthrt" column="reg_authrt" />
-            <result property="mdfcnAuthrt" column="mdfcn_authrt" />
-            <result property="delAuthrt" column="del_authrt" />
-            <result property="fileDwnldAuthrt" column="file_dwnld_authrt" />
-        </collection>
-    </resultMap>
-
-    <!--
-        작 성 자 : takensoft
-        작 성 일 : 2024.05.16
-        내   용 : 게시판 라우터 조회(권한 포함)
-    -->
-    <select id="findByBbsRouterAuthrt" resultMap="bbsRouterAuthrtMap">
-        SELECT A.bbs_mng_id
-             , A.bbs_korn_nm
-             , A.bbs_eng_nm
-             , A.page_crs
-             , A.compn_crs
-             , mi.menu_id
-             , mai.authrt_cd
-             , mai.inq_authrt
-             , mai.reg_authrt
-             , mai.mdfcn_authrt
-             , mai.del_authrt
-             , mai.file_dwnld_authrt
-          FROM ( SELECT br.bbs_router_id
-                      , br.bbs_mng_id
-                      , br.bbs_korn_nm
-                      , br.bbs_eng_nm
-                      , br.page_crs
-                      , br.compn_crs
-                      , br.use_yn
-                   FROM bbs_router br
-              LEFT JOIN bbs_mng bm
-                     ON br.bbs_mng_id = bm.bbs_mng_id
-                  WHERE bm.use_yn = 'Y'
-
-              UNION ALL
-
-                 SELECT br.bbs_router_id
-                      , br.bbs_mng_id
-                      , br.bbs_korn_nm
-                      , concat('adm', br.bbs_eng_nm) AS bbs_eng_nm
-                      , br.mngr_page_crs AS page_crs
-                      , br.compn_crs
-                      , br.use_yn
-                   FROM bbs_router br
-              LEFT JOIN bbs_mng bm
-                     ON br.bbs_mng_id = bm.bbs_mng_id
-                  WHERE bm.use_yn = 'Y'
-              ) A
-     LEFT JOIN menu_info mi
-            ON A.bbs_mng_id = mi.menu_type_ctgry
-     LEFT JOIN menu_authrt_info mai
-            ON mi.menu_id = mai.menu_id
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/bbs/bbsTypeMng-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/bbs/bbsTypeMng-SQL.xml
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : 박정하
-    작성일 : 2024.05.08
-    내 용 : 게시판 관리 관련
--->
-<mapper namespace="com.takensoft.cms.bbs.dao.BbsTypeMngDAO">
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.08
-        내   용 : 게시판 유형 관리 등록
-    -->
-    <insert id="insertBbsTypeMng" parameterType="BbsTypeMngVO">
-        INSERT INTO bbs_type_mng (
-            bbs_type_id
-            , bbs_type_korn_nm
-            , bbs_type_eng_nm
-            , bbs_type
-            , page_crs
-            , compn_crs
-            , expsr_yn
-            , use_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{bbsTypeId}
-            , #{bbsTypeKornNm}
-            , #{bbsTypeEngNm}
-            , #{bbsType}
-            , #{pageCrs}
-            , #{compnCrs}
-            , #{expsrYn}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <sql id="findBbsTypeMng">
-        SELECT bbs_type_id
-             , bbs_type_korn_nm
-             , bbs_type_eng_nm
-             , bbs_type
-             , page_crs
-             , compn_crs
-             , expsr_yn
-             , use_yn
-             , rgtr
-             , TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mdfr
-             , TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-        FROM bbs_type_mng
-    </sql>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.13
-        내   용 : 게시판 유형 관리 목록 조회
-    -->
-    <select id="findAll" parameterType="BbsTypeMngVO" resultType="BbsTypeMngVO">
-        <include refid="findBbsTypeMng" />
-        WHERE use_yn = 'Y'
-        <choose>
-            <when test="bbsType != null and bbsType != ''">
-            AND
-                bbs_type = #{bbsType}
-            </when>
-            <otherwise>
-            AND
-                expsr_yn = #{expsrYn}
-            </otherwise>
-        </choose>
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.05.13
-        내   용 : 게시판 유형 관리 상세 조회
-    -->
-    <select id="findByBbsTypeId" parameterType="String" resultType="BbsTypeMngVO">
-        SELECT bbs_type_id
-            , bbs_type_korn_nm
-            , bbs_type_eng_nm
-            , bbs_type
-            , page_crs
-            , compn_crs
-            , expsr_yn
-            , use_yn
-            , rgtr
-            , TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-            , mdfr
-            , TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-        FROM bbs_type_mng
-        WHERE bbs_type_id = #{bbsTypeId}
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/bbs/cmnt-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/bbs/cmnt-SQL.xml
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : 방선주
-    작성일 : 2024.05.27
-    내 용 : 게시판 댓글 관련
--->
-<mapper namespace="com.takensoft.cms.bbs.dao.CmntDAO">
-    <resultMap id="CmntMap" type="CmntVO">
-        <result property="cmntId" column="cmnt_id"/>
-        <result property="bbsId" column="bbs_id"/>
-        <result property="upCmntId" column="up_cmnt_id"/>
-        <result property="cmntCn" column="cmnt_cn"/>
-        <result property="cmntGrd" column="cmnt_grd"/>
-        <result property="cmntSn" column="cmnt_sn"/>
-        <result property="useYn" column="use_yn"/>
-        <result property="rgtr" column="rgtr"/>
-        <result property="regDt" column="reg_dt"/>
-        <result property="mdfr" column="mdfr"/>
-        <result property="mdfcnDt" column="mdfcn_dt"/>
-    </resultMap>
-
-    <!--
-    작성자 : 방선주
-    작성일 : 2024.05.27
-    내 용 : 게시판 댓글 등록
-    -->
-    <insert id="saveCmnt" parameterType="CmntVO">
-        INSERT INTO cmnt(
-                          bbs_id
-                        , up_cmnt_id
-                        , cmnt_cn
-                        , cmnt_grd
-                        , cmnt_sn
-                        , use_yn
-                        , rgtr
-                        , reg_dt
-        ) VALUES (
-                          #{bbsId}
-                        , #{upCmntId}
-                        , #{cmntCn}
-                        , #{cmntGrd}
-                        , #{cmntSn}
-                        , 'Y'
-                        , #{rgtr}
-                        , now()
-        );
-    </insert>
-
-    <!--
-    작성자 : 방선주
-    작성일 : 2024.05.27
-    내 용 : 부모가 같은 댓글 개수 조회
-    -->
-    <select id="getCmntCount" parameterType="CmntVO" resultType="Integer">
-        SELECT COUNT(*)
-        FROM cmnt
-        WHERE bbs_id = #{bbsId}
-          <if test="upCmntId != null">
-            AND up_cmnt_id = #{upCmntId}
-          </if>
-          AND use_yn = 'Y'
-    </select>
-    <!--
-    작성자 : 방선주
-    작성일 : 2024.05.27
-    내 용 : 부모의 정보 조회
-    -->
-    <select id="findParentCmnt" parameterType="int" resultMap="CmntMap">
-        SELECT cmnt_id
-             , bbs_id
-             , up_cmnt_id
-             , cmnt_cn
-             , cmnt_grd
-             , cmnt_sn
-             , use_yn
-             , rgtr
-             , TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mdfr
-             , TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-        FROM cmnt
-        WHERE cmnt_id = #{upCmntId}
-    </select>
-
-    <!--
-        작성자 : 방선주
-        작성일 : 2024.05.27
-        내 용 : 댓글 조회
-        -->
-    <select id="findCmntList" parameterType="String" resultMap="CmntMap">
-        WITH RECURSIVE CommentHierarchy AS (
-            SELECT  cm1.cmnt_id
-                 , cm1.bbs_id
-                 , cm1.up_cmnt_id
-                 , cm1.cmnt_cn
-                 , cm1.cmnt_grd
-                 , cm1.cmnt_sn
-                 , cm1.use_yn
-                 , cm1.rgtr
-                 , TO_CHAR(cm1.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-                 , rgtrInfo.mbr_nm AS rgtrNm
-                 , cm1.mdfr
-                 , TO_CHAR(cm1.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-                 , mdfrInfo.mbr_nm AS mdfrNm
-            FROM cmnt cm1
-                     LEFT JOIN mbr_info rgtrInfo ON cm1.rgtr = rgtrInfo.mbr_id
-                     LEFT JOIN mbr_info mdfrInfo ON cm1.mdfr = mdfrInfo.mbr_id
-            WHERE cm1.bbs_id = #{bbsId}
-              AND cm1.up_cmnt_id = 0
-            UNION ALL
-            SELECT  cm.cmnt_id
-                 , cm.bbs_id
-                 , cm.up_cmnt_id
-                 , cm.cmnt_cn
-                 , cm.cmnt_grd
-                 , cm.cmnt_sn
-                 , cm.use_yn
-                 , cm.rgtr
-                 , TO_CHAR(cm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-                 , rgtrInfo.mbr_nm AS rgtrNm
-                 , cm.mdfr
-                 , TO_CHAR(cm.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-                 , mdfrInfo.mbr_nm AS mdfrNm
-            FROM cmnt cm
-                     INNER JOIN CommentHierarchy ch ON cm.up_cmnt_id = ch.cmnt_id
-                     LEFT JOIN mbr_info rgtrInfo ON cm.rgtr = rgtrInfo.mbr_id
-                     LEFT JOIN mbr_info mdfrInfo ON cm.mdfr = mdfrInfo.mbr_id
-        )
-        SELECT * FROM CommentHierarchy
-        ORDER BY cmnt_sn, cmnt_id
-    </select>
-
-    <!--
-        작성자 : 방선주
-        작성일 : 2024.05.27
-        내 용 : 댓글 업데이트
-        -->
-    <update id="updateCmnt" parameterType="CmntVO">
-        UPDATE cmnt
-        SET cmnt_cn = #{cmntCn}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = now()
-        WHERE cmnt_id = #{cmntId}
-    </update>
-
-    <!--
-        작성자 : 방선주
-        작성일 : 2024.05.27
-        내 용 : 댓글 삭제
-        -->
-    <update id="deleteCmnt" parameterType="CmntVO">
-        UPDATE cmnt
-        SET use_yn = #{useYn}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = now()
-        WHERE cmnt_id = #{cmntId}
-    </update>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/bbs/search-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/bbs/search-SQL.xml
@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : 하석형
-    작성일 : 2024.06.12
-    내 용 : 통합 검색 관리 관련
--->
-<mapper namespace="com.takensoft.portal.search.dao.SearchDAO">
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.06.12
-        내   용 : 검색 조건 SQL
-    -->
-    <sql id="searchSQL">
-        <!-- 검색 조건 및 검색어 -->
-        <choose>
-            <when test="searchType != null and searchType != ''">
-                <if test="searchType == 'title'">
-                    AND bbs_nm LIKE '%' || #{searchText} || '%'
-                </if>
-                <if test="searchType == 'content'">
-                    AND bbs_cn LIKE '%' || #{searchText} || '%'
-                </if>
-            </when>
-            <otherwise>
-                AND (
-                bbs_nm LIKE '%' || #{searchText} || '%'
-                OR
-                bbs_cn LIKE '%' || #{searchText} || '%'
-                )
-            </otherwise>
-        </choose>
-
-        <!-- 검색 기간 -->
-        <if test="startDt != null and startDt != ''">
-            <![CDATA[
-            AND reg_dt::DATE >= #{startDt}::DATE
-            ]]>
-        </if>
-        <if test="endDt != null and endDt != ''">
-            <![CDATA[
-            AND reg_dt::DATE <= #{endDt}::DATE
-            ]]>
-        </if>
-    </sql>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.06.12
-        내   용 : 검색 조건 Order By SQL
-    -->
-    <sql id="searchOrderBySQL">
-        <!-- 검색 정렬 -->
-        <choose>
-            <when test="sort != null and sort != ''">
-                <!-- (미구현)정확도 조건 -->
-                <if test="sort == 'A'">
-                </if>
-            </when>
-            <otherwise>
-                reg_dt DESC
-            </otherwise>
-        </choose>
-    </sql>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.06.12
-        내   용 : 게시판 검색 목록 조회 개수
-    -->
-    <select id="findAllCountByBbs" parameterType="SearchVO" resultType="int">
-        SELECT
-            COUNT(*)
-        FROM
-            bbs_cn bc
-        WHERE
-            bc.bbs_mng_id = #{bbsMngId}
-        AND
-            bc.use_yn = 'Y'
-        <include refid="searchSQL" />
-        <if test="roles != null and roles.size() > 0">
-            <choose>
-                <!-- ROLE_ADMIN일 때는 모든 데이터를 보여줍니다. -->
-                <when test="roles.contains('ROLE_ADMIN')">
-                </when>
-                <!-- ROLE_USER일 때는 작성자가 일치하는 데이터는 보여줍니다. -->
-                <when test="roles.contains('ROLE_USER')">
-                    AND (bc.prvt_pst_yn = 'N' OR bc.rgtr = #{mbrId})
-                </when>
-                <!-- 그 외는 비밀글을 조회할 수 없습니다. -->
-                <otherwise>
-                    AND bc.prvt_pst_yn = 'N'
-                </otherwise>
-            </choose>
-        </if>
-    </select>
-
-    <!--
-        작 성 자 : 하석형
-        작 성 일 : 2024.06.12
-        내   용 : 게시판 검색 목록 조회
-    -->
-    <select id="findAllByBbs" parameterType="SearchVO" resultType="SearchContentVO">
-        SELECT
-            bbs_mng_id AS menuTypeCtgry
-            , bbs_id AS pageId
-            , bbs_nm AS title
-            , bbs_cn AS content
-            , reg_dt::DATE
-        FROM
-            bbs_cn bc
-        WHERE
-            bc.bbs_mng_id = #{bbsMngId}
-        AND
-            bc.use_yn = 'Y'
-        <include refid="searchSQL" />
-        <if test="roles != null and roles.size() > 0">
-            <choose>
-                <!-- ROLE_ADMIN일 때는 모든 데이터를 보여줍니다. -->
-                <when test="roles.contains('ROLE_ADMIN')">
-                </when>
-                <!-- ROLE_USER일 때는 작성자가 일치하는 데이터는 보여줍니다. -->
-                <when test="roles.contains('ROLE_USER')">
-                    AND (bc.prvt_pst_yn = 'N' OR bc.rgtr = #{mbrId})
-                </when>
-                <!-- 그 외는 비밀글을 조회할 수 없습니다. -->
-                <otherwise>
-                    AND bc.prvt_pst_yn = 'N'
-                </otherwise>
-            </choose>
-        </if>
-        ORDER BY
-        <include refid="searchOrderBySQL" />
-        LIMIT #{typePreCnt}
-        <!--<if test="bbsMngIdList != null and bbsMngIdList.size() > 0">
-            AND bc.bbs_mng_id IN
-            <foreach item="bbsMngId" collection="bbsMngIdList" open="(" separator="," close=")">
-                #{bbsMngId}
-            </foreach>
-        </if>-->
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/bbs/wordMng-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/bbs/wordMng-SQL.xml
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : 방선주
-    작성일 : 2024.05.31
-    내 용 : 금지어 등록
--->
-<mapper namespace="com.takensoft.cms.bbs.dao.WordMngDAO">
-
-    <!--
-    작성자 : 방선주
-    작성일 : 2024.05.31
-    내 용 : 금지어 등록
-    -->
-    <insert id="saveWords" parameterType="WordMngVO">
-        INSERT INTO cntrl_nm_mng(
-                    cntrl_nm
-                  , rgtr
-                  , reg_dt
-        ) VALUES (
-                    #{cntrlNm}
-                  , #{rgtr}
-                  , now()
-        )
-    </insert>
-
-    <!--
-    작성자 : 방선주
-    작성일 : 2024.05.31
-    내 용 : 금지어 목록 조회
-    -->
-    <select id="findAllWord" parameterType="Pagination" resultType="WordMngVO">
-        SELECT cntrl_nm_id
-             , cntrl_nm
-             , cnm.rgtr
-             , mi.mbr_nm AS rgtr_nm
-             , to_char(cnm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-          FROM cntrl_nm_mng cnm
-          LEFT JOIN mbr_info mi
-            ON cnm.rgtr = mi.mbr_id
-        <where>
-            <if test="searchText != null and searchText != ''">
-                <choose>
-                    <when test="searchType == 'cntrlNm'">
-                        AND cntrl_nm LIKE '%' || #{searchText} || '%'
-                    </when>
-                    <when test="searchType == 'rgtrNm'">
-                        AND mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    </when>
-                    <otherwise>
-                        AND (
-                        cntrl_nm LIKE '%' || #{searchText} || '%'
-                        OR
-                        mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                        )
-                    </otherwise>
-                </choose>
-            </if>
-        </where>
-        ORDER BY cntrl_nm_id DESC
-        OFFSET #{limitStart} LIMIT #{recordSize}
-    </select>
-
-    <!--
-    작성자 : 방선주
-    작성일 : 2024.05.31
-    내 용 : 금지어 목록 count
-    -->
-    <select id="findAllCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(cntrl_nm_id)
-        FROM cntrl_nm_mng
-        LEFT JOIN mbr_info mi
-        ON cntrl_nm_mng.rgtr = mi.mbr_id
-        <where>
-            <if test="searchText != null and searchText != ''">
-                <choose>
-                    <when test="searchType == 'cntrlNm'">
-                        AND cntrl_nm LIKE '%' || #{searchText} || '%'
-                    </when>
-                    <when test="searchType == 'rgtrNm'">
-                        AND mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    </when>
-                    <otherwise>
-                        AND (
-                        cntrl_nm LIKE '%' || #{searchText} || '%'
-                        OR
-                        mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                        )
-                    </otherwise>
-                </choose>
-            </if>
-        </where>
-    </select>
-    <!--
-        작성자 : 방선주
-        작성일 : 2024.05.31
-        내 용 : 금지어 삭제
-    -->
-    <delete id="deleteWords" parameterType="Integer">
-        DELETE FROM cntrl_nm_mng
-        WHERE cntrl_nm_id = #{cntrlNmId}
-    </delete>
-
-    <!--
-        작성자 : 방선주
-        작성일 : 2024.05.31
-        내 용 : 금지어 string 목록
-    -->
-    <select id="findWordList" resultType="String">
-        SELECT cntrl_nm
-        FROM cntrl_nm_mng cnm
-
-    </select>
-
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/cntnStats/cntnStats-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/cntnStats/cntnStats-SQL.xml
@@ -1,414 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작 성 자 : takensoft
-    작 성 일 : 2024.05.23
-    내   용 : 접속 통계 관련
--->
-<mapper namespace="com.takensoft.cms.cntnStats.dao.CntnStatsDAO">
-
-    <!--                                   사용자 접속 통계 관련                                   -->
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.24
-        내 용 : 사용자 접속 통계 등록 검증
-    -->
-    <select id="userCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
-        SELECT COUNT(user_cntn_id)
-          FROM user_cntn_stats
-         WHERE authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </select>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.23
-        내 용 : 사용자 접속 통계 등록
-    -->
-    <insert id="userCntnStatsSave" parameterType="CntnStatsVO">
-        INSERT INTO user_cntn_stats (
-            authrt_cd
-            , cntn_yr
-            , cntn_mm
-            , cntn_day
-            , cntn_nope
-        ) VALUES (
-            #{authrtCd}
-            , #{cntnYr}
-            , #{cntnMm}
-            , #{cntnDay}
-            , 1
-        )
-    </insert>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.23
-        내 용 : 사용자 접속 통계 카운트 증가
-    -->
-    <update id="userCntnStatsUpdate" parameterType="CntnStatsVO">
-        UPDATE user_cntn_stats
-           SET cntn_nope = cntn_nope + 1
-         WHERE authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </update>
-    <!--                                   사용자 접속 통계 관련                                   -->
-
-
-    <!--                                   콘텐츠 접속 통계 관련                                   -->
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.24
-        내 용 : 콘텐츠 접속 통계 등록 검증
-    -->
-    <select id="contsCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
-        SELECT COUNT(conts_cntn_id)
-          FROM conts_cntn_stats
-         WHERE conts_id = #{typeId}
-           AND authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </select>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.23
-        내 용 : 컨텐츠 접속 통계 등록
-    -->
-    <insert id="contsCntnStatsSave" parameterType="CntnStatsVO">
-        INSERT INTO conts_cntn_stats (
-            conts_id
-            , authrt_cd
-            , cntn_yr
-            , cntn_mm
-            , cntn_day
-            , cntn_nope
-        ) VALUES (
-            #{typeId}
-            , #{authrtCd}
-            , #{cntnYr}
-            , #{cntnMm}
-            , #{cntnDay}
-            , 1
-        )
-    </insert>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.24
-        내 용 : 콘텐츠 접속 통계 수정
-    -->
-    <update id="contsCntnStatsUpdate" parameterType="CntnStatsVO">
-        UPDATE conts_cntn_stats
-           SET cntn_nope = cntn_nope + 1
-         WHERE conts_id = #{typeId}
-           AND authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </update>
-
-    <!--                                   콘텐츠 접속 통계 관련                                   -->
-
-
-    <!--                                   게시판 접속 통계 관련                                   -->
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.24
-        내 용 : 게시판 접속 통계 등록 검증
-    -->
-    <select id="bbsCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
-        SELECT COUNT(bbs_cntn_id)
-          FROM bbs_cntn_stats
-         WHERE bbs_id = #{typeId}
-           AND authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </select>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.23
-        내 용 : 게시판 접속 통계 등록
-    -->
-    <insert id="bbsCntnStatsSave" parameterType="CntnStatsVO">
-        INSERT INTO bbs_cntn_stats (
-            bbs_id
-            , authrt_cd
-            , cntn_yr
-            , cntn_mm
-            , cntn_day
-            , cntn_nope
-        ) VALUES (
-            #{typeId}
-            , #{authrtCd}
-            , #{cntnYr}
-            , #{cntnMm}
-            , #{cntnDay}
-            , 1
-        )
-    </insert>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.24
-        내 용 : 게시판 접속 통계 수정
-    -->
-    <update id="bbsCntnStatsUpdate" parameterType="CntnStatsVO">
-        UPDATE bbs_cntn_stats
-           SET cntn_nope = cntn_nope + 1
-         WHERE bbs_id = #{typeId}
-           AND authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </update>
-    <!--                                   게시판 접속 통계 관련                                   -->
-
-
-    <!--                                   메뉴 접속 통계 관련                                   -->
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.24
-        내 용 : 메뉴 접속 통계 등록 검증
-    -->
-    <select id="menuCntnStatsSaveChck" parameterType="CntnStatsVO" resultType="boolean">
-        SELECT COUNT(menu_cntn_id)
-          FROM menu_cntn_stats
-         WHERE menu_id = #{typeId}
-           AND authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </select>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.23
-        내 용 : 메뉴 접속 통계 등록
-    -->
-
-    <insert id="menuCntnStatsSave" parameterType="CntnStatsVO">
-        INSERT INTO menu_cntn_stats (
-            menu_id
-            , authrt_cd
-            , cntn_yr
-            , cntn_mm
-            , cntn_day
-            , cntn_nope
-        ) VALUES (
-            #{typeId}
-            , #{authrtCd}
-            , #{cntnYr}
-            , #{cntnMm}
-            , #{cntnDay}
-            , 1
-        )
-    </insert>
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.05.24
-       내 용 : 메뉴 접속 통계 수정
-   -->
-    <update id="menuCntnStatsUpdate" parameterType="CntnStatsVO">
-        UPDATE menu_cntn_stats
-           SET cntn_nope = cntn_nope + 1
-         WHERE menu_id = #{typeId}
-           AND authrt_cd = #{authrtCd}
-           AND cntn_yr = #{cntnYr}
-           AND cntn_mm = #{cntnMm}
-           AND cntn_day = #{cntnDay}
-    </update>
-    <!--                                   메뉴 접속 통계 관련                                   -->
-
-    <!--                                   통계관리 관련 통계 정보                                   -->
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.28
-        내 용 : 사용자 접속 통계
-    -->
-
-    <!--                                   통계관리 관련 통계 정보                                   -->
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.30
-        내   용 : 사용자 접속 통계 목록 조회
-    -->
-    <select id="selectUserCntnStats" parameterType="HashMap" resultType="HashMap">
-        SELECT ai.dates
-             , array_agg(authrt_nm) AS authrt_nm
-             , array_agg(COALESCE(ucs.cntn_nope, 0)) AS cntn_nope
-        FROM (SELECT generate_series(to_date(#{startDt}, 'YYYY-MM-DD'), to_date(#{endDt}, 'YYYY-MM-DD'), '1 day'::interval)::date AS dates , authrt_cd , authrt_nm FROM authrt_info WHERE use_yn = 'Y') AS ai
-        LEFT JOIN (SELECT authrt_cd, to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') AS cntn_date, cntn_nope FROM user_cntn_stats) AS ucs
-        ON dates = ucs.cntn_date
-        AND ai.authrt_cd = ucs.authrt_cd
-        GROUP BY ai.dates
-        ORDER BY dates DESC
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.30
-        내   용 : 사용자 접속 통계 목록 개수 조회
-    -->
-    <select id="selectUserCntnStatsCnt" parameterType="HashMap">
-        SELECT COALESCE(SUM(cntn_nope), 0)
-          FROM user_cntn_stats
-         WHERE to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
-           AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.30
-        내   용 : 메뉴별 접속 통계 목록 조회
-    -->
-    <select id="selectMenuCntnStats" parameterType="HashMap" resultType="HashMap">
-        WITH RECURSIVE menu_tree AS (
-            SELECT '' || mi.menu_nm AS menu_name
-                 , mi.menu_id
-              FROM menu_info AS mi
-             WHERE mi.use_yn = 'Y'
-               AND mi.menu_nm != '메인'
-               AND up_menu_id = #{menuMainDepth}
-        UNION ALL
-            SELECT mt.menu_name || ' > ' || mi.menu_nm AS menu_name
-                 , mi.menu_id
-              FROM menu_tree AS mt
-        INNER JOIN menu_info AS mi
-                ON mt.menu_id = mi.up_menu_id
-             WHERE mi.use_yn = 'Y'
-               AND mi.menu_nm != '메인'
-        )
-        select (SELECT menu_name FROM menu_tree WHERE menu_tree.menu_id = menus.menu_id) AS menu_name
-             , array_agg((SELECT authrt_nm FROM authrt_info WHERE authrt_info.authrt_cd = menus.authrt_cd AND authrt_info.use_yn = 'Y')) AS authrt_nm
-             , array_agg(cntn_nope) AS cntn_nope
-          from (select mt.menu_id, mai.authrt_cd, SUM(COALESCE(mcs.cntn_nope, 0)) AS cntn_nope
-                  from menu_tree AS mt
-             LEFT JOIN menu_authrt_info AS mai
-                    ON mt.menu_id = mai.menu_id
-             LEFT JOIN authrt_info AS ai
-                    ON mai.authrt_cd = ai.authrt_cd
-             LEFT JOIN menu_cntn_stats AS mcs
-                    ON mt.menu_id = mcs.menu_id
-                   AND mai.authrt_cd = mcs.authrt_cd
-                   AND TO_DATE(CONCAT(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= TO_DATE(#{startDt}, 'YYYY-MM-DD')
-                   AND TO_DATE(#{endDt}, 'YYYY-MM-DD') >= TO_DATE(CONCAT(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
-                 WHERE ai.use_yn='Y'
-              group by mt.menu_id, mai.authrt_cd) as menus
-      group by menu_id
-      order by menu_name
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.30
-        내   용 : 메뉴별 접속 통계 목록 개수 조회
-    -->
-    <select id="selectMenuCntnStatsCnt" parameterType="HashMap">
-        WITH RECURSIVE menu_tree AS (
-            SELECT mi.*
-                 , '' || mi.menu_nm AS name
-              FROM menu_info mi
-             WHERE up_menu_id = #{menuMainDepth}
-            UNION ALL
-            SELECT mi.*
-                 , mt.name || ' > ' || mi.menu_nm AS name
-              FROM menu_tree mt
-        INNER JOIN menu_info mi
-                ON mt.menu_id = mi.up_menu_id
-        )
-        SELECT SUM(COALESCE(menu.cntn_nope, 0))
-          FROM menu_tree
-        LEFT JOIN (
-            SELECT menu_id, cntn_nope
-              FROM menu_cntn_stats
-             WHERE to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
-               AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
-        ) as menu
-            on menu_tree.menu_id = menu.menu_id
-         WHERE menu_tree.use_yn = 'Y'
-           AND menu_tree.menu_grd != '0'
-           AND menu_tree.menu_nm != '메인'
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.30
-        내   용 : 게시판 접속 통계 목록 조회
-    -->
-    <select id="selectBbsCntnStats" parameterType="HashMap" resultType="HashMap">
-        SELECT (SELECT bbs_nm from bbs_mng where bbs_mng_id = bbs.bbs_mng_id) AS bbs_nm
-             , array_agg((SELECT authrt_nm FROM authrt_info WHERE authrt_info.authrt_cd = bbs.authrt_cd AND authrt_info.use_yn = 'Y')) AS authrt_nm
-             , array_agg(coalesce(cntn_nope, 0)) AS cntn_nope
-        from (
-            SELECT bm.bbs_mng_id
-                 , ad.authrt_cd
-              from bbs_mng as bm
-            left join (
-                SELECT mai.authrt_cd
-                     , menu_type_ctgry
-                  from menu_info as mi
-             LEFT JOIN menu_authrt_info as mai
-                    on mi.menu_id = mai.menu_id
-             LEFT JOIN authrt_info AS ai
-                    ON mai.authrt_cd = ai.authrt_cd
-                 WHERE mi.use_yn = 'Y'
-                   AND ai.use_yn='Y'
-              order by mi.menu_id
-            ) as ad
-              on bm.bbs_mng_id = ad.menu_type_ctgry
-           where bm.use_yn = 'Y'
-        ) as bbs
-        left join (
-            select bbs_id
-                 , authrt_cd
-                 , sum(cntn_nope) as cntn_nope
-              from bbs_cntn_stats
-             where to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
-               AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
-          group by bbs_id, authrt_cd
-        ) as bcs
-          on bbs.bbs_mng_id = bcs.bbs_id
-         and bbs.authrt_cd = bcs.authrt_cd
-    group by bbs_mng_id
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.30
-        내   용 : 게시판 접속 통계 목록 개수 조회
-    -->
-    <select id="selectBbsCntnStatsCnt" parameterType="HashMap">
-        SELECT SUM(COALESCE(cntn_nope, 0))
-        FROM (
-            SELECT bm.bbs_mng_id
-                 , ad.authrt_cd
-              FROM bbs_mng AS bm
-            LEFT JOIN (
-                SELECT mai.authrt_cd
-                     , menu_type_ctgry
-                  FROM menu_info AS mi
-             LEFT JOIN menu_authrt_info AS mai
-                    ON mi.menu_id = mai.menu_id
-             LEFT JOIN authrt_info AS ai
-                    ON mai.authrt_cd = ai.authrt_cd
-                 WHERE mi.use_yn = 'Y'
-                   AND ai.use_yn='Y'
-              ORDER BY mi.menu_id
-            ) AS ad
-                ON bm.bbs_mng_id = ad.menu_type_ctgry
-             WHERE bm.use_yn = 'Y'
-        ) AS bbs
-        LEFT JOIN (
-            SELECT bbs_id
-                 , authrt_cd
-                 , SUM(COALESCE(cntn_nope, 0)) as cntn_nope
-              FROM bbs_cntn_stats
-             WHERE to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD') >= to_date(#{startDt}, 'YYYY-MM-DD')
-               AND to_date(#{endDt}, 'YYYY-MM-DD') >= to_date(concat(cntn_yr, cntn_mm, cntn_day), 'YYYYMMDD')
-          GROUP BY bbs_id, authrt_cd
-        ) AS bcs
-          ON bbs.bbs_mng_id = bcs.bbs_id
-         AND bbs.authrt_cd = bcs.authrt_cd
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/codeManage/codeManage-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/codeManage/codeManage-SQL.xml
@@ -1,250 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.09
-    내 용 : 공통코드 관련
--->
-<mapper namespace="com.takensoft.cms.codeManage.dao.CodeManageDAO">
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 공통코드 중복 확인
-    -->
-    <select id="findByCheckCd" resultType="boolean">
-        SELECT COUNT(cd)
-          FROM cd_mng
-         WHERE cd = #{cd}
-         <if test="originCd != null and originCd != ''">
-           AND cd != #{originCd}
-        </if>
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 코드 등록
-    -->
-    <insert id="save" parameterType="CodeManageVO">
-        INSERT INTO cd_mng (
-            cd
-            , up_cd
-            , cd_nm
-            , cd_vl
-            , cd_expln
-            , cd_grd
-            , cd_sn
-            , use_yn
-            , sys_pvsn_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{cd}
-            , #{upCd}
-            , #{cdNm}
-            , #{cdVl}
-            , #{cdExpln}
-            , #{cdGrd}
-            , #{cdSn}
-            , 'Y'
-            , 1
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 코드 깊이 조회
-    -->
-    <select id="findByCdGrd" parameterType="String" resultType="Integer">
-        SELECT cd_grd
-          FROM cd_mng
-         WHERE cd = #{upCd}
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 코드 순서 조회
-    -->
-    <select id="findByCdSn" parameterType="String" resultType="Integer">
-        SELECT COALESCE(MAX(cd_sn), 0)
-          FROM cd_mng
-         WHERE use_yn = 'Y'
-         <choose>
-             <when test="upCd != null and upCd != ''">
-           AND up_cd = #{upCd}
-             </when>
-             <otherwise>
-           AND up_cd IS NULL
-             </otherwise>
-         </choose>
-    </select>
-
-    <sql id="selectCd">
-        SELECT cd
-             , up_cd
-             , cd_nm
-             , cd_vl
-             , cd_expln
-             , cd_grd
-             , cd_sn
-             , use_yn
-             , sys_pvsn_yn
-             , rgtr
-             , TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mdfr
-             , TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-          FROM cd_mng
-    </sql>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 최상위 코드 조회 [관리자용]
-    -->
-    <select id="findTopCd" resultType="CodeManageVO">
-        <include refid="selectCd" />
-         WHERE up_cd IS NULL
-      ORDER BY cd_sn
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 하위 코드 조회 [관리자용]
-    -->
-    <select id="findChildCd" parameterType="String" resultType="CodeManageVO">
-        <include refid="selectCd" />
-         WHERE up_cd = #{cd}
-        <if test="type =='user'">
-            AND use_yn = 'Y'
-        </if>
-      ORDER BY cd_sn
-    </select>
-
-<!--    &lt;!&ndash;-->
-<!--        작성자 : takensoft-->
-<!--        작성일 : 2024.04.09-->
-<!--        내 용 : 하위 코드 조회 [사용자용]-->
-<!--    &ndash;&gt;-->
-<!--    <select id="findChildCdUser" parameterType="String" resultType="CodeManageVO">-->
-<!--        <include refid="selectCd" />-->
-<!--        WHERE up_cd = #{cd}-->
-<!--          AND use_yn = 'Y'-->
-<!--        ORDER BY cd_sn-->
-<!--    </select>-->
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.09
-        내 용 : 코드 상세 조회
-    -->
-    <select id="findByCd" parameterType="String" resultType="CodeManageVO">
-        SELECT cm.cd
-             , cm.up_cd
-             , cm2.cd_nm AS up_cd_nm
-             , cm.cd_nm
-             , cm.cd_vl
-             , cm.cd_expln
-             , cm.cd_grd
-             , cm.cd_sn
-             , cm.use_yn
-             , cm.sys_pvsn_yn
-             , cm.rgtr
-             , TO_CHAR(cm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , cm.mdfr
-             , TO_CHAR(cm.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-          FROM cd_mng cm
-     LEFT JOIN cd_mng cm2
-            ON cm.up_cd = cm2.cd
-         WHERE cm.cd = #{cd}
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.15
-        내 용 : 코드 수정
-    -->
-    <update id="update" parameterType="CodeManageVO">
-        UPDATE cd_mng
-           SET cd = #{cd}
-             , up_cd = #{upCd}
-             , cd_nm = #{cdNm}
-             , cd_vl = #{cdVl}
-             , cd_expln = #{cdExpln}
-             , cd_grd = #{cdGrd}
-             , cd_sn = #{cdSn}
-             , use_yn = #{useYn}
-             , mdfr = #{mdfr}
-             , mdfcn_dt = NOW()
-        WHERE cd = #{originCd}
-    </update>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.26
-        내 용 : 상위코드가 수정됨에 따라 하위코드의 상위코드값 변경
-    -->
-    <update id="updateUpCd" parameterType="CodeManageVO">
-        UPDATE cd_mng
-           SET up_cd = #{cd}
-         WHERE up_cd = #{originCd}
-    </update>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.23
-        내 용 : 코드 삭제
-    -->
-    <delete id="deleteCd" parameterType="String">
-        WITH RECURSIVE CodeHierarchy AS (
-            SELECT cd
-                 , up_cd
-              FROM cd_mng
-             WHERE cd = #{cd}
-         UNION ALL
-            SELECT cm.cd
-                 , cm.up_cd
-              FROM cd_mng cm
-              JOIN CodeHierarchy ch
-                ON cm.up_cd = ch.cd
-        )
-        DELETE FROM cd_mng WHERE cd IN (SELECT cd FROM CodeHierarchy)
-    </delete>
-
-    <!--  공통코드 관리(관리자 페이지 Tree 호출 전용)  -->
-    <sql id="selectNode">
-        SELECT cd       AS id
-             , up_cd    AS up_id
-             , cd_nm    AS nm
-          FROM cd_mng
-    </sql>
-    <select id="findByTopNode" resultType="HierachyVO">
-        <include refid="selectNode" />
-         WHERE up_cd IS NULL
-      ORDER BY cd_sn
-    </select>
-    <select id="findChildNode" parameterType="String" resultType="HierachyVO">
-        <include refid="selectNode" />
-        WHERE up_cd = #{id}
-        ORDER BY cd_sn
-    </select>
-
-    <!--
-        작성자 : 박정하
-        작성일 : 2024.05.10
-        내 용 : 공통 코드 정보 수정 (hierachyVO 사용)
-    -->
-    <update id="codeUpdateByHierachy" parameterType="CodeManageVO">
-        UPDATE cd_mng
-        SET up_cd = #{upCd}
-          , cd_grd = #{cdGrd}
-          , cd_sn = #{cdSn}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE cd = #{cd}
-    </update>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/common/Idgen-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/common/Idgen-SQL.xml
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.01.01
-    내  용 : idgen 관련 mapper
--->
-<mapper namespace="com.takensoft.common.idgen.dao.IdgenMapper">
-
-    <!--
-        작 성 자 : takensoft
-        작 성 일 : 2024.01.01
-        내    용 : 테이블명으로 시퀀스 조회
-    -->
-    <select id="selectNextId" parameterType="String" resultType="IdgenVO">
-        SELECT aftr_id
-          FROM cmmn_idgn
-         WHERE tbl_nm = #{tblNm}
-    </select>
-
-    <!--
-        작 성 자 : takensoft
-        작 성 일 : 2024.04.01
-        내    용 : 시퀀스 등록 및 수정
-    -->
-    <insert id="upsertSeqNmg" parameterType="IdgenVO">
-        INSERT INTO cmmn_idgn (
-            tbl_nm
-            , aftr_id
-        ) VALUES (
-            #{tblNm}
-            , #{aftrId}
-        )
-        ON CONFLICT (tbl_nm)
-        DO UPDATE
-        SET aftr_id = #{aftrId}
-    </insert>
-
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/common/file-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/common/file-SQL.xml
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.takensoft.common.file.dao.FileDAO">
-    <!-- 파일 resultMap -->
-    <resultMap id="fileMap" type="HashMap">
-        <result property="fileId" column="file_id" />
-        <result property="fileMngId" column="file_mng_id" />
-        <result property="fileNm" column="file_nm" />
-        <result property="maskNm" column="mask_nm" />
-        <result property="fileType" column="file_type" />
-        <result property="absltPath" column="abslt_path" />
-        <result property="partPath" column="part_path" />
-        <result property="extnNm" column="extn_nm" />
-        <result property="fileSz" column="file_sz" />
-        <result property="rgtr" column="rgtr" />
-        <result property="regDt" column="reg_dt" />
-    </resultMap>
-
-    <!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.03.26
-    내   용 : 파일 등록
-    -->
-    <insert id="fileInsert" parameterType="HashMap">
-        INSERT INTO cmmn_file (
-            file_mng_id
-            , file_nm
-            , mask_nm
-            , file_type
-            , abslt_path
-            , part_path
-            , extn_nm
-            , file_sz
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{fileMngId}
-            , #{fileNm}
-            , #{maskNm}
-            , #{fileType}
-            , #{absltPath}
-            , #{partPath}
-            , #{extnNm}
-            , #{fileSz}
-            , #{rgtr}
-            , now()
-        )
-    </insert>
-
-    <!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.03.26
-    내   용 : 파일 목록 조회
-    -->
-    <select id="fileSelectList" parameterType="String" resultMap="fileMap">
-        SELECT file_id
-             , file_mng_id
-             , file_nm
-             , mask_nm
-             , file_type
-             , abslt_path
-             , part_path
-             , extn_nm
-             , file_sz
-             , rgtr
-             , reg_dt
-        FROM cmmn_file
-        WHERE file_mng_id = #{fileMngId}
-        ORDER BY file_id ASC
-    </select>
-
-    <!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.03.27
-    내   용 : 파일 삭제
-    -->
-    <delete id="fileDelete" parameterType="HashMap">
-        DELETE
-        FROM cmmn_file
-        WHERE file_id = #{fileId}
-    </delete>
-
-    <!--
-    작 성 자 : 방선주
-    작 성 일 : 2024.05.21
-    내   용 : 파일 단일 조회
-    -->
-    <select id="fileSelectOne" parameterType="Integer" resultType="FileVO">
-        SELECT file_id
-             , file_mng_id
-             , file_nm
-             , mask_nm
-             , file_type
-             , abslt_path
-             , part_path
-             , extn_nm
-             , file_sz
-             , rgtr
-             , reg_dt
-        FROM cmmn_file
-        WHERE file_id = #{fileId}
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/common/fileManage-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/common/fileManage-SQL.xml
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.takensoft.common.file.dao.FileMngDAO">
-    <!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.03.26
-    내   용 : 파일매니저 등록
-    -->
-    <insert id="fileMngInsert" parameterType="HashMap">
-        INSERT INTO cmmn_file_mng (
-            file_mng_id
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{fileMngId}
-            , #{rgtr}
-            , now()
-        )
-    </insert>
-
-    <!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.03.27
-    내   용 : 파일매니저 수정
-    -->
-    <update id="fileMngUpadate" parameterType="HashMap">
-        UPDATE cmmn_file_mng
-           SET mdfr = #{mdfr}
-             , mdfcn_dt = now()
-         WHERE file_mng_id = #{fileMngId}
-    </update>
-
-    <!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.03.27
-    내   용 : 파일매니저 삭제
-    -->
-    <delete id="fileMngDelete" parameterType="HashMap">
-        DELETE
-        FROM cmmn_file_mng
-        WHERE file_mng_id = #{fileMngId}
-    </delete>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/contsType/contsType-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/contsType/contsType-SQL.xml
@@ -1,219 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.17
-    내 용 : 콘텐츠 유형 관리 관련
--->
-<mapper namespace="com.takensoft.cms.contsType.dao.ContsTypeDAO">
-
-    <!-- 콘텐츠 조회(라우터 조회용 - 권한포함) -->
-    <resultMap id="contsAuthrtMap" type="ContsAuthrtVO">
-        <result property="contsId" column="conts_id" />
-<!--        <result property="menuId" column="menu_id" />-->
-        <result property="contsKornNm" column="conts_korn_nm" />
-        <result property="contsEngNm" column="conts_eng_nm" />
-        <result property="pageCrs" column="page_crs" />
-        <result property="mngrPageCrs" column="mngr_page_crs" />
-        <result property="compnCrs" column="compn_crs" />
-        <collection property="authrtList" ofType="MenuAuthorVO">
-            <result property="authrtCd" column="authrt_cd" />
-            <result property="menuId" column="menu_id" />
-            <result property="inqAuthrt" column="inq_authrt" />
-            <result property="regAuthrt" column="reg_authrt" />
-            <result property="mdfcnAuthrt" column="mdfcn_authrt" />
-            <result property="delAuthrt" column="del_authrt" />
-            <result property="fileDwnldAuthrt" column="file_dwnld_authrt" />
-        </collection>
-    </resultMap>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.17
-        내 용 : 콘텐츠 유형 등록
-    -->
-    <insert id="save" parameterType="ContsTypeVO">
-        INSERT INTO conts_type_mng (
-            conts_id
-            , conts_korn_nm
-            , conts_eng_nm
-            , page_crs
-            , mngr_page_crs
-            , compn_crs
-            , expsr_yn
-            , use_yn
-            , sys_pvsn_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{contsId}
-            , #{contsKornNm}
-            , #{contsEngNm}
-            , #{pageCrs}
-            , #{mngrPageCrs}
-            , #{compnCrs}
-            , #{expsrYn}
-            , 'Y'
-            , '1'
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.04.17
-       내 용 : 콘텐츠 유형 수정
-   -->
-    <update id="update" parameterType="ContsTypeVO">
-        UPDATE conts_type_mng
-           SET conts_korn_nm = #{contsKornNm}
-             , conts_eng_nm = #{contsEngNm}
-             , page_crs = #{pageCrs}
-             , mngr_page_crs = #{mngrPageCrs}
-             , compn_crs = #{compnCrs}
-             , expsr_yn = #{expsrYn}
-             , use_yn = #{useYn}
-             , mdfr = #{mdfr}
-             , mdfcn_dt = NOW()
-         WHERE conts_id = #{contsId}
-    </update>
-
-   <sql id="selectContsType">
-        SELECT conts_id
-             , conts_korn_nm
-             , conts_eng_nm
-             , page_crs
-             , mngr_page_crs
-             , compn_crs
-             , expsr_yn
-             , use_yn
-             , sys_pvsn_yn
-             , rgtr
-             , to_char(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mdfr
-             , to_char(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-          FROM conts_type_mng
-   </sql>
-
-    <!-- 검색 조건 -->
-    <sql id="selectRequirement">
-        <if test="searchText != null and searchText != ''">
-            AND conts_korn_nm LIKE '%' || #{searchText} || '%'
-        </if>
-    </sql>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.17
-        내 용 : 콘텐츠 유형 목록 조회
-    -->
-    <select id="findAll" parameterType="Pagination" resultType="ContsTypeVO">
-        <include refid="selectContsType" />
-        WHERE use_yn = 'Y'
-        <include refid="selectRequirement" />
-        ORDER BY conts_id DESC
-        OFFSET #{limitStart} LIMIT #{recordSize}
-    </select>
-
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.04.17
-       내 용 : 콘텐츠 유형 목록 조회(사용자 등록 항목[sys_pvsn_yn = 0])
-   -->
-    <select id="findByContsTypeSys" parameterType="ContsTypeVO" resultType="ContsTypeVO">
-        <include refid="selectContsType" />
-        WHERE use_yn = 'Y'
---           AND sys_pvsn_yn = '0'
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.17
-        내 용 : 콘텐츠 유형 상세 조회
-    -->
-    <select id="findByContsType" parameterType="String" resultType="ContsTypeVO">
-        <include refid="selectContsType" />
-        WHERE conts_id = #{contsId}
-    </select>
-
-    <!--
-        작성자 : 박정하
-        작성일 : 2024.04.23
-        내 용 : 콘텐츠 유형 목록 갯수(관리자 페이지용)
-    -->
-    <select id="findAllCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(conts_id)
-          FROM conts_type_mng
-         WHERE use_yn = 'Y'
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작성자 : 박정하
-        작성일 : 2024.04.29
-        내 용 : 콘텐츠 유형 목록 조회 (메뉴 노출 건만 - 사용자 등록 항목[sys_pvsn_yn = 1])
-    -->
-    <select id="findAllByExpsr" parameterType="ContsTypeVO" resultType="ContsTypeVO">
-        <include refid="selectContsType" />
-        WHERE use_yn = 'Y'
-        AND expsr_yn = 'Y'
-<!--        <if test="sysPvsnYn != null and sysPvsnYn != ''">-->
-<!--            AND sys_pvsn_yn = #{sysPvsnYn}-->
-<!--        </if>-->
-        <choose>
-            <when test="sysPvsnYn != null and sysPvsnYn != ''">
-                ORDER BY conts_id ASC
-            </when>
-            <otherwise>
-                ORDER BY conts_id DESC
-            </otherwise>
-        </choose>
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.02
-        내 용 : 콘텐츠 조회(권한 포함)
-    -->
-    <select id="findByContsAuthrt" resultMap="contsAuthrtMap">
-        SELECT ctm.conts_id
-             , ctm.conts_korn_nm
-             , ctm.conts_eng_nm
-             , ctm.page_crs
-             , ctm.compn_crs
-             , mi.menu_id
-             , mai.authrt_cd
-             , mai.inq_authrt
-             , mai.reg_authrt
-             , mai.mdfcn_authrt
-             , mai.del_authrt
-             , mai.file_dwnld_authrt
-          FROM ( SELECT conts_id
-                      , conts_korn_nm
-                      , conts_eng_nm
-                      , page_crs
-                      , compn_crs
-                   FROM conts_type_mng
-                  WHERE use_yn = 'Y'
-                    AND page_crs IS NOT NULL
-                    AND page_crs != ''
-
-              UNION ALL
-
-                 SELECT conts_id
-                      , conts_korn_nm
-                      , concat('adm', conts_eng_nm) AS conts_eng_nm
-                      , mngr_page_crs AS page_crs
-                      , compn_crs
-                   FROM conts_type_mng
-                  WHERE use_yn = 'Y'
-                    AND mngr_page_crs IS NOT NULL
-                    AND mngr_page_crs != ''
-              ) ctm
-     LEFT JOIN menu_info mi
-            ON ctm.conts_id = mi.menu_type_ctgry
-     LEFT JOIN menu_authrt_info mai
-            ON mi.menu_id = mai.menu_id
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/main/adminMain-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/main/adminMain-SQL.xml
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.05.29
-    내   용 : 메인 통계 관련
--->
-<mapper namespace="com.takensoft.cms.main.dao.MainDAO">
-    <!--                              관리자 메인페이지 통계정보 관련                              -->
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.28
-        내   용 : 신규회원 가입자 수
-    -->
-    <select id="selectCntnNewCnt">
-        SELECT count(mbr_id)
-        FROM mbr_info
-        WHERE to_char(reg_dt, 'YYYY-MM-DD') > to_char((now() + '-7 days'), 'YYYY-MM-DD')
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.28
-        내   용 : 오늘 방문자 수
-    -->
-    <select id="selectCntnDayCnt">
-        SELECT SUM(COALESCE(cntn_nope, 0))
-        FROM user_cntn_stats
-        WHERE cntn_yr = to_char(now(), 'YYYY')
-          AND cntn_mm = to_char(now(), 'MM')
-          AND cntn_day = to_char(now(), 'DD')
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.28
-        내   용 : 이번달 방문자 수
-    -->
-    <select id="selectCntnMmCnt">
-        SELECT SUM(COALESCE(cntn_nope, 0))
-        FROM user_cntn_stats
-        WHERE cntn_yr = to_char(now(), 'YYYY')
-          AND cntn_mm = to_char(now(), 'MM')
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.28
-        내   용 : 총 방문자 수
-    -->
-    <select id="selectCntnTotalCnt">
-        SELECT SUM(COALESCE(cntn_nope, 0))
-        FROM user_cntn_stats
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.28
-        내   용 : 방문자 접속 통계
-    -->
-    <select id="findByMonthCntnStats" parameterType="HashMap">
-        SELECT ai.dates
-             , array_agg(authrt_nm) AS authrt_nm
-             , array_agg(COALESCE(ucs.cntn_nope, 0)) AS cntn_nope
-        FROM (SELECT generate_series((now() + '-10 days') , now(), '1 day'::interval)::date AS dates, authrt_cd, authrt_nm FROM authrt_info WHERE use_yn = 'Y') AS ai
-        LEFT JOIN (SELECT authrt_cd, to_date(concat(cntn_yr,cntn_mm,cntn_day), 'YYYYMMDD') AS cntn_date, cntn_nope FROM user_cntn_stats) AS ucs
-        ON dates = ucs.cntn_date
-        AND ai.authrt_cd = ucs.authrt_cd
-        GROUP BY ai.dates
-        ORDER BY dates
-    </select>
-    <!--                              // 관리자 메인페이지 통계정보 관련                           -->
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.14
-        내   용 : 기업상담신청 알림
-    -->
-    <select id="findAplyToasts" parameterType="HashMap">
-        SELECT '신규등록' AS name
-             , COALESCE(count(ent_dscsn_aply_id), 0) AS count
-          FROM ent_dscsn_aply AS eda
-         WHERE use_yn = 'Y'
-           AND prcs_stts IS NULL
-        UNION ALL
-        SELECT '변경요청' AS name
-             , COALESCE(count(ent_dscsn_aply_id), 0) AS count
-          FROM ent_dscsn_aply AS eda
-         WHERE use_yn = 'Y'
-           AND prcs_stts = 'C'
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/mber/admMbr-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/mber/admMbr-SQL.xml
@@ -1,309 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.06.21
-    내   용 : 회원정보 관련
--->
-<mapper namespace="com.takensoft.cms.mber.dao.AdmMbrDAO">
-    <!-- 회원정보 resultMap(권한 포함) -->
-    <resultMap id="mbrMap" type="AdmMbrDTO">
-        <result property="mbrId" column="mbr_id" />
-        <result property="lgnId" column="lgn_id" />
-        <result property="mbrNm" column="mbr_nm" />
-        <result property="ncnm" column="ncnm" />
-        <result property="pswd" column="pswd" />
-        <result property="mblTelno" column="mbl_telno" />
-        <result property="telno" column="telno" />
-        <result property="eml" column="eml" />
-        <result property="zip" column="zip" />
-        <result property="addr" column="addr" />
-        <result property="daddr" column="daddr" />
-        <result property="mbrStts" column="mbr_stts" />
-        <result property="useYn" column="use_yn" />
-        <result property="cntrlDt" column="cntrl_dt" />
-        <result property="cntrlRsn" column="cntrl_rsn" />
-        <result property="smsRcptnAgreYn" column="sms_rcptn_agre_yn" />
-        <result property="emlRcptnAgreYn" column="eml_rcptn_agre_yn" />
-        <result property="prvcRlsYn" column="prvc_rls_yn" />
-        <result property="mbrType" column="mbr_type" />
-        <result property="pswdChgDt" column="pswd_chg_dt" />
-        <result property="frstRegIp" column="frst_reg_ip" />
-        <result property="sysPvsnYn" column="sys_pvsn_yn" />
-        <result property="rgtr" column="rgtr" />
-        <result property="regDt" column="reg_dt" />
-        <result property="mdfr" column="mdfr" />
-        <result property="mdfcnDt" column="mdfcn_dt" />
-        <collection property="authorList" column="{mbrId = mbr_id}" javaType="java.util.ArrayList" ofType="MberAuthorVO" select="mbrAuthorList" />
-    </resultMap>
-
-    <!-- 회원 권한 매핑 -->
-    <resultMap id="authMap" type="MberAuthorVO">
-        <result property="mbrId" column="mbr_id" />
-        <result property="authrtNm" column="authrt_nm" />
-        <result property="authrtCd" column="authrt_cd" />
-        <result property="rgtr" column="rgtr" />
-        <result property="regDt" column="reg_dt" />
-    </resultMap>
-
-    <sql id="selectMbr">
-        SELECT mi.mbr_id
-             , mi.lgn_id
-             , mi.mbr_nm
-             , mi.ncnm
-             , mi.pswd
-             , mi.mbl_telno
-             , mi.telno
-             , mi.eml
-             , mi.zip
-             , mi.addr
-             , mi.daddr
-             , mi.mbr_stts
-             , mi.use_yn
-             , TO_CHAR(mi.cntrl_dt, 'YYYY-MM-DD') AS cntrl_dt
-             , mi.cntrl_rsn
-             , mi.sms_rcptn_agre_yn
-             , mi.eml_rcptn_agre_yn
-             , mi.prvc_rls_yn
-             , mi.mbr_type
-             , TO_CHAR(mi.pswd_chg_dt, 'YYYY-MM-DD HH24:MI') AS pswd_chg_dt
-             , mi.frst_reg_ip
-             , mi.sys_pvsn_yn
-             , mi.rgtr
-             , TO_CHAR(mi.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mi.mdfr
-             , TO_CHAR(mi.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-        FROM mbr_info AS mi
-    </sql>
-
-    <sql id="selectRequirement">
-        <if test="searchText != null and searchText != ''">
-            <choose>
-                <when test="searchType != null and searchType != ''">
-                    <if test="searchType == 'lgn_id'">
-                        AND mi.lgn_id LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'mbr_nm'">
-                        AND mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    </if>
-                </when>
-                <otherwise>
-                    AND (
-                    mi.lgn_id LIKE '%' || #{searchText} || '%'
-                    OR
-                    mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    )
-                </otherwise>
-            </choose>
-        </if>
-    </sql>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원정보 목록 개수 조회
-    -->
-    <select id="mbrListCnt" resultType="int">
-        SELECT COUNT(mi.mbr_id)
-          FROM mbr_info AS mi
-     LEFT JOIN mbr_authrt_info AS mai
-            ON mi.mbr_id = mai.mbr_id
-         WHERE mi.use_yn = 'Y'
-        <if test="cateId == 'authrt_cd' and cateValue != null and cateValue != ''">
-            AND mai.authrt_cd = #{cateValue}
-        </if>
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원정보 목록 조회
-    -->
-    <select id="mbrList" resultMap="mbrMap">
-        <include refid="selectMbr" />
-        LEFT JOIN mbr_authrt_info AS mai
-               ON mi.mbr_id = mai.mbr_id
-            WHERE mi.use_yn = 'Y'
-        <if test="cateId == 'authrt_cd' and cateValue != null and cateValue != ''">
-            AND mai.authrt_cd = #{cateValue}
-        </if>
-        <include refid="selectRequirement" />
-         ORDER BY mi.reg_dt DESC
-           OFFSET #{limitStart} LIMIT #{recordSize}
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원 권한 조회
-    -->
-    <select id="mbrAuthorList" parameterType="MberVO" resultMap="authMap">
-        SELECT mai.mbr_id
-             , ai.authrt_nm
-             , mai.authrt_cd
-             , mai.rgtr
-             , TO_CHAR(mai.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-          FROM mbr_authrt_info AS mai
-     LEFT JOIN authrt_info AS ai
-            ON mai.authrt_cd = ai.authrt_cd
-           AND ai.use_yn = 'Y'
-         WHERE mai.mbr_id = #{mbrId}
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원정보 상세 조회
-    -->
-    <select id="mbrDetail" parameterType="String" resultMap="mbrMap">
-        <include refid="selectMbr" />
-        WHERE mi.use_yn = 'Y'
-          AND mi.mbr_id = #{mbrId}
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원정보 수정
-    -->
-    <update id="updateMbr" parameterType="JoinDTO">
-        UPDATE mbr_info
-        SET mbr_nm = #{mbrNm}
-          , ncnm = #{ncnm}
-          , mbl_telno = #{mblTelno}
-          , telno = #{telno}
-          , eml = #{eml}
-          , zip = #{zip}
-          , addr = #{addr}
-          , daddr = #{daddr}
-          , mbr_stts = #{mbrStts}
-          , use_yn = #{useYn}
-          , cntrl_dt = #{cntrlDt}::timestamp
-          , cntrl_rsn = #{cntrlRsn}
-          , sms_rcptn_agre_yn = #{smsRcptnAgreYn}
-          , eml_rcptn_agre_yn = #{emlRcptnAgreYn}
-          , prvc_rls_yn = #{prvcRlsYn}
-          , mbr_type = #{mbrType}
-          , sys_pvsn_yn = #{sysPvsnYn}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE mbr_id = #{mbrId}
-    </update>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원 권한 삭제
-    -->
-    <delete id="deleteAuthorListByMbrId" parameterType="String">
-        DELETE
-        FROM mbr_authrt_info
-       WHERE mbr_id = #{mbrId}
-    </delete>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원 권한 등록
-    -->
-    <insert id="insertAuthor" parameterType="MberAuthorVO">
-        INSERT INTO mbr_authrt_info (
-            mbr_id
-          , authrt_cd
-          , rgtr
-          , reg_dt
-        ) VALUES (
-            #{mbrId}
-            , #{authrtCd}
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.06.21
-        내   용 : 회원정보 등록
-    -->
-    <insert id="mbrInsert" parameterType="JoinDTO">
-        INSERT INTO mbr_info (
-            mbr_id
-            , lgn_id
-            , mbr_nm
-            , ncnm
-            , pswd
-            , mbl_telno
-            , telno
-            , eml
-            , zip
-            , addr
-            , daddr
-            , mbr_stts
-            , use_yn
-            , cntrl_dt
-            , cntrl_rsn
-            , sms_rcptn_agre_yn
-            , eml_rcptn_agre_yn
-            , prvc_rls_yn
-            , mbr_type
-            , pswd_chg_dt
-            , frst_reg_ip
-            , sys_pvsn_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{mbrId}
-            , #{lgnId}
-            , #{mbrNm}
-            , #{ncnm}
-            , #{pswd}
-            , #{mblTelno}
-            , #{telno}
-            , #{eml}
-            , #{zip}
-            , #{addr}
-            , #{daddr}
-            , #{mbrStts}
-            , 'Y'
-            , #{cntrlDt}::timestamp
-            , #{cntrlRsn}
-            , #{smsRcptnAgreYn}
-            , #{emlRcptnAgreYn}
-            , #{prvcRlsYn}
-            , 'S'
-            , NOW()
-            , #{frstRegIp}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.07.03
-        내   용 : 아이디 찾기 (로그인 아이디)
-    -->
-    <select id="lgnIdSearch" parameterType="MberVO" resultType="String">
-        SELECT lgn_id
-          FROM mbr_info
-         WHERE mbr_nm = #{mbrNm}
-           AND eml = #{eml}
-           AND use_yn = 'Y'
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.07.03
-        내   용 : 아이디 찾기 (멤버 아이디)
-    -->
-    <select id="mbrIdSearch" parameterType="AdmMbrDTO" resultType="String">
-        SELECT mbr_id
-        FROM mbr_info
-        WHERE lgn_id = #{lgnId}
-          AND mbr_nm = #{mbrNm}
-          AND eml = #{eml}
-          AND use_yn = 'Y'
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/mber/lgnHstry-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/mber/lgnHstry-SQL.xml
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.09
-    내 용 : 로그인 이력 관련
--->
-<mapper namespace="com.takensoft.cms.mber.dao.LgnHstryDAO">
-    <!-- 로그인 이력 resultMap -->
-    <resultMap id="lgnHstryMap" type="LgnHstryVO">
-        <result property="lgnId" column="lgn_id" />
-        <result property="lgnType" column="lgn_type" />
-        <result property="cntnDt" column="cntn_dt" />
-        <result property="cntnIp" column="cntn_ip" />
-        <result property="cntnOperSys" column="cntn_oper_sys" />
-        <result property="deviceNm" column="device_nm" />
-        <result property="brwsrNm" column="brwsr_nm" />
-    </resultMap>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.11
-        내 용 : 로그인 이력 등록
-    -->
-    <insert id="save" parameterType="LgnHstryVO">
-        INSERT INTO lgn_hstry (
-            lgn_id
-            , lgn_type
-            , cntn_dt
-            , cntn_ip
-            , cntn_oper_sys
-            , device_nm
-            , brwsr_nm
-        ) VALUES (
-            #{lgnId}
-            , #{lgnType}
-            , NOW()
-            , #{cntnIp}
-            , #{cntnOperSys}
-            , #{deviceNm}
-            , #{brwsrNm}
-        )
-    </insert>
-
-    <!-- SELECT SQL -->
-    <sql id="selectItem">
-        SELECT lh.lgn_id
-             , lh.lgn_type
-             , TO_CHAR(lh.cntn_dt, 'YYYY-MM-DD HH24:MI') AS cntn_dt
-             , lh.cntn_ip
-             , lh.cntn_oper_sys
-             , lh.device_nm
-             , lh.brwsr_nm
-        FROM lgn_hstry AS lh
-    </sql>
-
-    <sql id="selectRequirement">
-        <if test="startDt != null and startDt != ''">
-            AND lh.cntn_dt >= #{startDt}::timestamp
-        </if>
-        <if test="endDt != null and endDt != ''">
-            AND #{endDt}::timestamp >= lh.cntn_dt
-        </if>
-        <if test="searchText != null and searchText != ''">
-            <choose>
-                <when test="searchType != null and searchType != ''">
-                    <if test="searchType == 'lgnType'">
-                        lh.lgn_type = (SELECT CASE cm.cd_nm
-                            WHEN '관리자' THEN '0'
-                            WHEN '사용자' THEN '1'
-                            ELSE ''
-                            END
-                            FROM cd_mng AS cm
-                            WHERE cm.use_yn = 'Y'
-                            AND cm.up_cd = 'lgnHstryType'
-                            AND cm.cd_nm LIKE '%' || #{searchText} || '%')
-                    </if>
-                    <if test="searchType == 'lgnId'">
-                        AND lh.lgn_id LIKE '%' || #{searchText} || '%'
-                    </if>
-                </when>
-                <otherwise>
-                    AND (
-                        lh.lgn_type = (SELECT CASE cm.cd_nm
-                            WHEN '관리자' THEN '0'
-                            WHEN '사용자' THEN '1'
-                            ELSE ''
-                            END
-                            FROM cd_mng AS cm
-                            WHERE cm.use_yn = 'Y'
-                            AND cm.up_cd = 'lgnHstryType'
-                            AND cm.cd_nm LIKE '%' || #{searchText} || '%')
-                    OR
-                        lh.lgn_id LIKE '%' || #{searchText} || '%'
-                    )
-                </otherwise>
-            </choose>
-        </if>
-    </sql>
-    <!-- // SELECT SQL -->
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.24
-        내   용 : 로그인 이력 개수
-    -->
-    <select id="selectLgnHstryListCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(lgn_hstry_id)
-        FROM lgn_hstry AS lh
-        WHERE true
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.24
-        내   용 : 로그인 이력 조회
-    -->
-    <select id="selectLgnHstryList" parameterType="Pagination" resultMap="lgnHstryMap">
-        <include refid="selectItem" />
-        WHERE true
-        <include refid="selectRequirement" />
-        ORDER BY cntn_dt DESC
-        LIMIT #{recordSize} OFFSET #{limitStart}
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/mber/mber-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/mber/mber-SQL.xml
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.03
-    내 용 : 회원정보 관련
--->
-<mapper namespace="com.takensoft.cms.mber.dao.MberDAO">
-    <!-- 회원 정보 resultMap(권한 포함) -->
-    <resultMap id="mberMap" type="MberVO">
-        <result property="mbrId" column="mbr_id" />
-        <result property="lgnId" column="lgn_id" />
-        <result property="mbrNm" column="mbr_nm" />
-        <result property="ncnm" column="ncnm" />
-        <result property="pswd" column="pswd" />
-        <result property="mblTelno" column="mbl_telno" />
-        <result property="telno" column="telno" />
-        <result property="eml" column="eml" />
-        <result property="zip" column="zip" />
-        <result property="addr" column="addr" />
-        <result property="daddr" column="daddr" />
-        <result property="mbrStts" column="mbr_stts" />
-        <result property="useYn" column="use_yn" />
-        <result property="cntrlDt" column="cntrl_dt" />
-        <result property="cntrlRsn" column="cntrl_rsn" />
-        <result property="smsRcptnAgreYn" column="sms_rcptn_agre_yn" />
-        <result property="emlRcptnAgreYn" column="eml_rcptn_agre_yn" />
-        <result property="prvcRlsYn" column="prvc_rls_yn" />
-        <result property="mbrType" column="mbr_type" />
-        <result property="pswdChgDt" column="pswd_chg_dt" />
-        <result property="frstRegIp" column="frst_reg_ip" />
-        <result property="sysPvsnYn" column="sys_pvsn_yn" />
-        <result property="rgtr" column="rgtr" />
-        <result property="regDt" column="reg_dt" />
-        <result property="mdfr" column="mdfr" />
-        <result property="mdfcnDt" column="mdfcn_dt" />
-        <collection property="authorList" column="{mbrId = mbr_id}" javaType="java.util.ArrayList" ofType="MberAuthorVO" select="findByMberAuthor" />
-    </resultMap>
-
-    <!-- 회원, 권한 매핑 -->
-    <resultMap id="authMap" type="MberAuthorVO">
-        <result property="mbrId" column="mbr_id" />
-        <result property="authrtNm" column="authrt_nm" />
-        <result property="authrtCd" column="authrt_cd" />
-        <result property="rgtr" column="rgtr" />
-        <result property="regDt" column="reg_dt" />
-    </resultMap>
-
-    <sql id="selectMber">
-        SELECT mi.mbr_id
-             , mi.lgn_id
-             , mi.mbr_nm
-             , mi.ncnm
-             , mi.pswd
-             , mi.mbl_telno
-             , mi.telno
-             , mi.eml
-             , mi.zip
-             , mi.addr
-             , mi.daddr
-             , mi.mbr_stts
-             , mi.use_yn
-             , TO_CHAR(mi.cntrl_dt, 'YYYY-MM-DD') AS cntrl_dt
-             , mi.cntrl_rsn
-             , mi.sms_rcptn_agre_yn
-             , mi.eml_rcptn_agre_yn
-             , mi.prvc_rls_yn
-             , mi.mbr_type
-             , TO_CHAR(mi.pswd_chg_dt, 'YYYY-MM-DD HH24:MI') AS pswd_chg_dt
-             , mi.frst_reg_ip
-             , mi.sys_pvsn_yn
-             , mi.rgtr
-             , TO_CHAR(mi.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mi.mdfr
-             , TO_CHAR(mi.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-        FROM mbr_info mi
-    </sql>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.03
-        내 용 : 회원정보 조회 [security 용]
-    -->
-    <select id="findByMberSecurity" parameterType="String" resultMap="mberMap">
-        <include refid="selectMber" />
-        WHERE mi.lgn_id = #{lgnId}
-        AND mi.use_yn = 'Y'
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.03
-        내 용 : 로그인 아이디 중복 확인
-    -->
-    <select id="findByCheckLoginId" parameterType="String" resultType="boolean">
-        SELECT COUNT(lgn_id)
-          FROM mbr_info
-         WHERE lgn_id = #{lgnId}
-           AND use_yn = 'Y'
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.03
-        내 용 : 회원가입
-    -->
-    <insert id="save" parameterType="JoinDTO">
-        INSERT INTO mbr_info (
-            mbr_id
-            , lgn_id
-            , mbr_nm
-            , ncnm
-            , pswd
-            , mbl_telno
-            , telno
-            , eml
-            , zip
-            , addr
-            , daddr
-            , mbr_stts
-            , use_yn
-            , cntrl_dt
-            , cntrl_rsn
-            , sms_rcptn_agre_yn
-            , eml_rcptn_agre_yn
-            , prvc_rls_yn
-            , mbr_type
-            , pswd_chg_dt
-            , frst_reg_ip
-            , sys_pvsn_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{mbrId}
-            , #{lgnId}
-            , #{mbrNm}
-            , #{ncnm}
-            , #{pswd}
-            , #{mblTelno}
-            , #{telno}
-            , #{eml}
-            , #{zip}
-            , #{addr}
-            , #{daddr}
-            , #{mbrStts}
-            , 'Y'
-            , #{cntrlDt}::timestamp
-            , #{cntrlRsn}
-            , #{smsRcptnAgreYn}
-            , #{emlRcptnAgreYn}
-            , #{prvcRlsYn}
-            , 'S'
-            , NOW()
-            , #{frstRegIp}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.03
-        내 용 : 회원 권한 등록
-    -->
-    <insert id="authorSave" parameterType="MberAuthorVO">
-        INSERT INTO mbr_authrt_info (
-            mbr_id
-            , authrt_cd
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{mbrId}
-            , #{authrtCd}
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.15
-        내 용 : 비밀번호 변경
-    -->
-    <update id="updatePassword" parameterType="PasswordDTO">
-        UPDATE mbr_info
-        SET pswd = #{newPswd}
-        WHERE mbr_id = #{mbrId}
-    </update>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.15
-        내 용 : 회원정보 조회
-    -->
-    <select id="findByMber" parameterType="String" resultMap="mberMap">
-        <include refid="selectMber" />
-        WHERE mi.mbr_id = #{mbrId}
-        AND mi.use_yn = 'Y'
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.03
-        내 용 : 회원 권한 정보 조회
-    -->
-    <select id="findByMberAuthor" parameterType="MberVO" resultMap="authMap">
-        SELECT mai.mbr_id
-             , mai.authrt_cd
-             , mai.rgtr
-             , TO_CHAR(mai.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-        FROM mbr_authrt_info mai
-        WHERE mai.mbr_id = #{mbrId}
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/mber/refresh-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/mber/refresh-SQL.xml
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.04
-    내 용 : 토큰 관련
--->
-<mapper namespace="com.takensoft.cms.mber.dao.RefreshTokenDAO">
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.04
-        내 용 : refresh token 등록
-    -->
-    <insert id="save" parameterType="RefreshVO">
-        INSERT INTO mbr_refresh (
-            mbr_id
-            , token
-            , expry_dt
-            , use_ip
-        ) VALUES (
-            #{mbrId}
-            , #{token}
-            , #{expryDt}
-            , #{useIp}
-        )
-    </insert>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.04
-        내 용 : refresh token 삭제
-    -->
-    <delete id="deleteByRefresh" parameterType="RefreshVO">
-        DELETE
-          FROM mbr_refresh
-         WHERE mbr_id = #{mbrId}
-           AND use_ip like #{useIp} || '%'
-    </delete>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.05
-        내 용 : 기한 만료된 refresh token 삭제 [ Schedule 용 ]
-    -->
-    <delete id="cleanExpiredRefreshTokens">
-        DELETE
-          FROM mbr_refresh
-         WHERE expry_dt &lt;= NOW()
-    </delete>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.17
-        내 용 : refresh token 유무 확인
-    -->
-    <select id="findByCheckRefresh" parameterType="RefreshVO" resultType="boolean">
-        SELECT EXISTS (
-            SELECT 1
-              FROM mbr_refresh
-             WHERE mbr_id = #{mbrId}
-               AND use_ip = #{useIp}
-        ) AS result
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/menu/menu-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/menu/menu-SQL.xml
@@ -1,488 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : takensoft
-    작성일 : 2024.04.08
-    내 용 : 메뉴 관련
--->
-<mapper namespace="com.takensoft.cms.menu.dao.MenuDAO">
-    <!-- 메뉴 정보 resultMap(권한포함) -->
-    <resultMap id="menuMap" type="MenuVO">
-        <result property="menuId" column="menu_id" />
-        <result property="upMenuId" column="up_menu_id" />
-        <result property="upMenuNm" column="up_menu_nm" />
-        <result property="menuNm" column="menu_nm" />
-        <result property="menuExpln" column="menu_expln" />
-        <result property="menuGrd" column="menu_grd" />
-        <result property="menuSn" column="menu_sn" />
-        <result property="menuType" column="menu_type" />
-        <result property="menuTypeCtgry" column="menu_type_ctgry" />
-        <result property="linkUrl" column="link_url" />
-        <result property="linkType" column="link_type" />
-        <result property="dgstfnExmnUseYn" column="dgstfn_exmn_use_yn" />
-        <result property="menuExpsrYn" column="menu_expsr_yn" />
-        <result property="menuUser" column="menu_user" />
-        <result property="useYn" column="use_yn" />
-        <result property="rgtr" column="rgtr" />
-        <result property="rgtrNm" column="rgtr_nm" />
-        <result property="regDt" column="reg_dt" />
-        <result property="mdfr" column="mdfr" />
-        <result property="mdfrNm" column="mdfr_nm" />
-        <result property="mdfcnDt" column="mdfcn_dt" />
-        <result property="sysPvsnYn" column="sys_pvsn_yn" />
-    </resultMap>
-
-
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.08
-        내 용 : 메뉴 등록
-    -->
-    <insert id="save" parameterType="MenuVO">
-        INSERT INTO menu_info (
-            menu_id
-            , up_menu_id
-            , menu_nm
-            , menu_expln
-            , menu_grd
-            , menu_sn
-            , menu_type
-            , menu_type_ctgry
-            , link_url
-            , link_type
-            , dgstfn_exmn_use_yn
-            , menu_expsr_yn
-            , menu_user
-            , use_yn
-            , rgtr
-            , reg_dt
-            , sys_pvsn_yn
-        ) VALUES (
-            #{menuId}
-            , #{upMenuId}
-            , #{menuNm}
-            , #{menuExpln}
-            , #{menuGrd}
-            , #{menuSn}
-            , #{menuType}
-            , #{menuTypeCtgry}
-            , #{linkUrl}
-            , #{linkType}
-            , #{dgstfnExmnUseYn}
-            , #{menuExpsrYn}
-            , #{menuUser}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-            , #{sysPvsnYn}
-        )
-    </insert>
-
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.04.08
-       내 용 : 메뉴별 권한 등록
-   -->
-    <insert id="menuAuthrtSave" parameterType="MenuAuthorVO">
-        INSERT INTO menu_authrt_info (
-            authrt_cd
-            , menu_id
-            , inq_authrt
-            , reg_authrt
-            , mdfcn_authrt
-            , del_authrt
-            , file_dwnld_authrt
-            , reg_dt
-        ) VALUES (
-            #{authrtCd}
-            , #{menuId}
-            <choose>
-                <when test="authrtCd == 'ROLE_ADMIN'">
-                    , 'Y'
-                    , 'Y'
-                    , 'Y'
-                    , 'Y'
-                    , 'Y'
-                </when>
-                <otherwise>
-                    , 'N'
-                    , 'N'
-                    , 'N'
-                    , 'N'
-                    , 'N'
-                </otherwise>
-            </choose>
-            , NOW()
-        )
-    </insert>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.08
-        내 용 : 메뉴별 만족도 등록
-    -->
-    <insert id="saveMenuStsfdg" parameterType="MenuStsfdgVO">
-        INSERT INTO menu_dgstfn (
-            menu_dgstfn_id
-            , menu_id
-            , rspns_five
-            , rspns_four
-            , rspns_three
-            , rspns_two
-            , rspns_one
-            , opnn
-            , reg_ip
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{menuDgstfnId}
-            , #{menuId}
-            , #{rspnsFive}
-            , #{rspnsFour}
-            , #{rspnsThree}
-            , #{rspnsTwo}
-            , #{rspnsOne}
-            , #{opnn}
-            , #{regIp}
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <sql id="selectMenu">
-        SELECT mi.menu_id
-             , mi.up_menu_id
-             , (SELECT mi2.menu_nm FROM menu_info AS mi2 WHERE mi2.menu_id = mi.up_menu_id) AS up_menu_nm
-             , mi.menu_nm
-             , mi.menu_expln
-             , mi.menu_grd
-             , mi.menu_sn
-             , mi.menu_type
-             , mi.menu_type_ctgry
-             , mi.link_url
-             , mi.link_type
-             , mi.dgstfn_exmn_use_yn
-             , mi.menu_expsr_yn
-             , mi.menu_user
-             , mi.use_yn
-             , mi.rgtr
-             , (SELECT mbr.mbr_nm FROM mbr_info AS mbr WHERE mbr.mbr_id = mi.rgtr) AS rgtr_nm
-             , TO_CHAR (mi.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , mi.mdfr
-             , (SELECT mbr.mbr_nm FROM mbr_info AS mbr WHERE mbr.mbr_id = mi.mdfr) AS mdfr_nm
-             , TO_CHAR (mi.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-          FROM menu_info AS mi
-    </sql>
-
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.04.08
-       내 용 : 최상위 메뉴 조회 [관리자용]
-   -->
-    <select id="findTopMenu" resultType="MenuVO">
-        <include refid="selectMenu" />
-         WHERE up_menu_id IS NULL
-      ORDER BY menu_sn
-    </select>
-
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.04.08
-       내 용 : 하위 메뉴 조회 [관리자용]
-   -->
-    <select id="findChildMenus" parameterType="String" resultType="MenuVO">
-        <include refid="selectMenu" />
-         WHERE up_menu_id = #{menuId}
-      ORDER BY menu_sn
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.15
-        내 용 : 메뉴 전체 조회(최상위 메뉴 제외-> grd:0)
-    -->
-    <select id="findExceptTopMenu" resultType="MenuVO">
-        <include refid="selectMenu" />
-        WHERE menu_grd != 0
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.08
-        내 용 : 메뉴 상세 조회
-    -->
-    <select id="findByMenu" parameterType="String" resultMap="menuMap">
-        <include refid="selectMenu" />
-         WHERE menu_id = #{menuId}
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.08
-        내 용 : 메뉴 깊이 조회
-    -->
-    <select id="findByMenuGrd" parameterType="String" resultType="Integer">
-        SELECT menu_grd
-          FROM menu_info
-         WHERE menu_id = #{upMenuId}
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.08
-        내 용 : 메뉴 순서 조회
-   -->
-    <select id="findByMenuSn" parameterType="String" resultType="Integer">
-        SELECT COALESCE(MAX(menu_sn), 0)
-          FROM menu_info
-         WHERE use_yn = 'Y'
-         <choose>
-             <when test="upMenuId != null and upMenuId != ''">
-           AND up_menu_id = #{upMenuId}
-             </when>
-             <otherwise>
-           AND up_menu_id IS NULL
-             </otherwise>
-         </choose>
-    </select>
-
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.15
-        내 용 : 메뉴 수정
-    -->
-    <update id="update" parameterType="MenuVO">
-        UPDATE menu_info
-           SET up_menu_id = #{upMenuId}
-             , menu_nm = #{menuNm}
-             , menu_expln = #{menuExpln}
-             , menu_grd = #{menuGrd}
-             , menu_sn = #{menuSn}
-             , menu_type = #{menuType}
-             , menu_type_ctgry = #{menuTypeCtgry}
-             , link_url = #{linkUrl}
-             , link_type = #{linkType}
-             , dgstfn_exmn_use_yn = #{dgstfnExmnUseYn}
-             , menu_expsr_yn = #{menuExpsrYn}
-             , menu_user = #{menuUser}
-             , use_yn = #{useYn}
-             , mdfr = #{mdfr}
-             , mdfcn_dt = NOW()
-         WHERE menu_id = #{menuId}
-    </update>
-
-    <!--  메뉴 관리(관리자 페이지 Tree 호출용)   -->
-    <sql id="selecteNode">
-        SELECT menu_id AS id
-             , up_menu_id AS up_id
-             , menu_nm AS nm
-        FROM menu_info
-    </sql>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.25
-        내 용 : 상위 메뉴 조회
-    -->
-    <select id="findByTopNode" resultType="HierachyVO">
-        <include refid="selecteNode" />
-        WHERE up_menu_id IS NULL
-        AND use_yn = 'Y'
-        ORDER BY menu_sn
-    </select>
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.04.25
-        내 용 : 하위 메뉴 조회
-    -->
-    <select id="findChildNode" parameterType="String" resultType="HierachyVO">
-        <include refid="selecteNode" />
-        WHERE up_menu_id = #{id}
-        AND use_yn = 'Y'
-        ORDER BY menu_sn
-    </select>
-    <!--  메뉴 관리(관리자 페이지 Tree 호출용)   -->
-
-    <!--
-        작성자 : 박정하
-        작성일 : 2024.04.29
-        내 용 : 상위,하위 메뉴 삭제
-    -->
-    <update id="deleteMenu" parameterType="MenuVO">
-        WITH RECURSIVE MenuHierarchy AS (
-            SELECT menu_id
-                 , up_menu_id
-            FROM menu_info
-            WHERE menu_id = #{menuId}
-            UNION ALL
-            SELECT di.menu_id
-                 , di.up_menu_id
-            FROM menu_info di
-            JOIN MenuHierarchy dh
-            ON di.up_menu_id = dh.menu_id
-        )
-        UPDATE menu_info
-        SET use_yn = 'N'
-            , mdfr = #{mdfr}
-            , mdfcn_dt = NOW()
-        WHERE menu_id IN (SELECT menu_id FROM MenuHierarchy);
-    </update>
-
-    <!--
-       작성자 : 박정하
-       작성일 : 2024.05.02
-       내 용 : 상위 메뉴 조회 [관리자용]
-   -->
-    <select id="findUpMenuId" parameterType="String" resultType="String">
-        SELECT up_menu_id AS menuId
-        FROM menu_info
-        WHERE menu_id = #{menuId}
-    </select>
-
-    <!--
-       작성자 : 박정하
-       작성일 : 2024.05.02
-       내 용 : 메뉴 권한 수정
-   -->
-    <update id="updateMenuAuthrt" parameterType="HashMap">
-        UPDATE menu_authrt_info
-        SET inq_authrt = #{inqAuthrt}
-          , reg_authrt = #{regAuthrt}
-          , mdfcn_authrt = #{mdfcnAuthrt}
-          , del_authrt = #{delAuthrt}
-          , file_dwnld_authrt = #{fileDwnldAuthrt}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE authrt_cd = #{authrtCd}
-        AND menu_id = #{id}
-    </update>
-
-
-    <!--                                    홈페이지 메뉴 호출 전용                                    -->
-    <!--
-        작성자 : takensoft
-        작성일 : 2024.05.09
-        내 용 : 최상위 메뉴 조회(라우터 포함)
-    -->
-    <select id="findByMenuWithRouter" resultType="SysMenuVO">
-        SELECT mi.menu_id
-             , mi.up_menu_id
-             , mi.menu_nm
-             , COALESCE(ctm.page_crs, bm.page_crs, mi.link_url, '') AS router_url
-             , mi.link_type
-             , mi.menu_type
-             , mi.menu_type_ctgry
-          FROM menu_info mi
-     LEFT JOIN ( SELECT conts_id
-                    <choose>
-                        <when test="menuType == 'adm'">
-                            , mngr_page_crs AS page_crs
-                        </when>
-                        <otherwise>
-                            , page_crs
-                        </otherwise>
-                    </choose>
-                   FROM conts_type_mng
-                ) ctm
-            ON mi.menu_type_ctgry = ctm.conts_id
-           AND mi.menu_type = 'conts'
-     LEFT JOIN ( SELECT bm.bbs_mng_id
-                    <choose>
-                        <when test="menuType == 'adm'">
-                            , br.mngr_page_crs AS page_crs
-                        </when>
-                        <otherwise>
-                            , br.page_crs
-                        </otherwise>
-                    </choose>
-                   FROM bbs_mng bm
-              LEFT JOIN bbs_router br
-                     ON bm.bbs_mng_id = br.bbs_mng_id
-                    AND br.expsr_yn = 'Y') bm
-            ON mi.menu_type_ctgry = bm.bbs_mng_id
-           AND mi.menu_type = 'bbs'
-         WHERE mi.up_menu_id = #{menuId}
-           AND mi.use_yn = 'Y'
-           AND mi.menu_expsr_yn = 'Y'
-           AND ( NOT EXISTS ( SELECT 1
-                                FROM menu_authrt_info mai
-                               WHERE mai.menu_id = mi.menu_id
-                               <if test="roles != null and roles.size() > 0">
-                                 AND mai.authrt_cd IN
-                                <foreach item="role" collection="roles" open="(" separator="," close=")">
-                                    #{role}
-                                </foreach>
-                               </if>
-                             ) OR EXISTS ( SELECT 1
-                                             FROM menu_authrt_info mai
-                                            WHERE mai.menu_id = mi.menu_id
-                                              AND mai.inq_authrt = 'Y'
-                                            <if test="roles != null and roles.size() > 0">
-                                              AND mai.authrt_cd IN
-                                             <foreach item="role" collection="roles" open="(" separator="," close=")">
-                                                #{role}
-                                             </foreach>
-                                            </if>
-                                         )
-                )
-        ORDER BY mi.menu_sn
-    </select>
-
-    <!--                                    홈페이지 메뉴 호출 전용                                    -->
-
-    <!--
-        작성자 : 박정하
-        작성일 : 2024.05.10
-        내 용 : 메뉴 정보 수정 (hierachyVO 사용)
-    -->
-    <update id="menuUpdateByHierachy" parameterType="DeptVO">
-        UPDATE menu_info
-        SET up_menu_id = #{upMenuId}
-          , menu_grd = #{menuGrd}
-          , menu_sn = #{menuSn}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE menu_id = #{menuId}
-    </update>
-
-    <!--
-        작성자 : 박정하
-        작성일 : 2024.05.17
-        내 용 : 메뉴 수정 (콘텐츠 유형)
-    -->
-    <update id="updateByContsId" parameterType="ContsTypeVO">
-        UPDATE menu_info
-        SET menu_type = null
-          , menu_type_ctgry = null
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE menu_type_ctgry = #{contsId}
-    </update>
-
-    <!--
-       작성자 : 방선주
-       작성일 : 2024.06.07
-       내 용 : 게시판 관리에서 게시판 삭제 시 게시판 메뉴 미노출로 변경 (MENU_000000000000032 강제 적용)
-   -->
-    <update id="bbsMngMenuDelete" parameterType="MenuVO">
-        UPDATE menu_info
-        SET
-            use_yn = #{useYn}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE up_menu_id = 'MENU_000000000000027'
-          AND menu_type_ctgry = #{menuTypeCtgry}
-    </update>
-
-    <!--
-       작성자 : 박정하
-       작성일 : 2024.07.18
-       내 용 : 메뉴 개수 조회 (접속 통계용)
-   -->
-    <select id="findAllCnt" parameterType="HashMap" resultType="int">
-        SELECT COUNT(menu_id)
-          FROM menu_info
-         WHERE use_yn = 'Y'
-           AND up_menu_id = #{menuMainDepth}
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/menu/menuAuthor-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/menu/menuAuthor-SQL.xml
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작성자 : 박정하
-    작성일 : 2024.05.07
-    내 용 : 메뉴 권한 관련
--->
-<mapper namespace="com.takensoft.cms.menu.dao.MenuAuthorDAO">
-    <!-- 메뉴 권한 정보 resultMap -->
-    <resultMap id="menuAuthrtMap" type="HashMap">
-        <result property="name" column="name" />
-        <result property="menuId" column="menu_id" />
-        <result property="upMenuId" column="up_menu_id" />
-        <result property="menuNm" column="menu_nm" />
-        <result property="inqAuthrt" column="inq_authrt" />
-        <result property="regAuthrt" column="reg_authrt" />
-        <result property="mdfcnAuthrt" column="mdfcn_authrt" />
-        <result property="delAuthrt" column="del_authrt" />
-        <result property="fileDwnldAuthrt" column="file_dwnld_authrt" />
-    </resultMap>
-
-    <!--
-       작성자 : takensoft
-       작성일 : 2024.04.08
-       내 용 : 메뉴별 권한 등록
-   -->
-    <insert id="menuAuthrtSave" parameterType="MenuAuthorVO">
-        INSERT INTO menu_authrt_info (
-        authrt_cd
-        , menu_id
-        , inq_authrt
-        , reg_authrt
-        , mdfcn_authrt
-        , del_authrt
-        , file_dwnld_authrt
-        , reg_dt
-        ) VALUES (
-        #{authrtCd}
-        , #{menuId}
-        <choose>
-            <when test="authrtCd == 'ROLE_ADMIN'">
-                , 'Y'
-                , 'Y'
-                , 'Y'
-                , 'Y'
-                , 'Y'
-            </when>
-            <otherwise>
-                , 'N'
-                , 'N'
-                , 'N'
-                , 'N'
-                , 'N'
-            </otherwise>
-        </choose>
-        , NOW()
-        )
-    </insert>
-
-    <!--
-       작성자 : 박정하
-       작성일 : 2024.05.02
-       내 용 : 메뉴 권한 수정
-   -->
-    <update id="updateMenuAuthrt" parameterType="HashMap">
-        UPDATE menu_authrt_info
-        SET inq_authrt = #{inqAuthrt}
-          , reg_authrt = #{regAuthrt}
-          , mdfcn_authrt = #{mdfcnAuthrt}
-          , del_authrt = #{delAuthrt}
-          , file_dwnld_authrt = #{fileDwnldAuthrt}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE authrt_cd = #{authrtCd}
-          AND menu_id = #{menuId}
-    </update>
-
-    <!--
-       작성자 : 박정하
-       작성일 : 2024.05.02
-       내 용 : 메뉴 권한 조회
-    -->
-    <select id="findAll" parameterType="String" resultMap="menuAuthrtMap">
-        WITH RECURSIVE menu_tree AS (
-            SELECT mi.*
-                 , '' || mi.menu_nm AS name
-              FROM menu_info mi
-             WHERE up_menu_id IS NULL UNION ALL
-            SELECT mi.*
-                 , mt.name || ' > ' || mi.menu_nm AS name
-              FROM menu_tree mt
-        INNER JOIN menu_info mi
-                ON mt.menu_id = mi.up_menu_id
-        )
-        SELECT mt.name
-             , mt.menu_id
-             , mt.up_menu_id
-             , mt.menu_nm
-             , mai.inq_authrt
-             , mai.reg_authrt
-             , mai.mdfcn_authrt
-             , mai.del_authrt
-             , mai.file_dwnld_authrt
-          FROM menu_tree mt
-     LEFT JOIN menu_authrt_info mai
-            ON mt.menu_id = mai.menu_id
-           AND mai.authrt_cd = #{authrtCd}
-         WHERE mt.use_yn = 'Y'
-        <if test="authrtCd != 'ROLE_ADMIN'">
-           AND mt.sys_pvsn_yn = '1'
-        </if>
-      ORDER BY mt.name
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/popup/popup-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/popup/popup-SQL.xml
@@ -1,226 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.05.13
-    내   용 : 팝업 관련
--->
-<mapper namespace="com.takensoft.cms.popup.dao.PopupDAO">
-    <!-- 팝업 resultMap -->
-    <resultMap id="popupMap" type="PopupVO">
-        <result property="popupId" column="popup_id" />
-        <result property="popupTtl" column="popup_ttl" />
-        <result property="bgngDt" column="bgng_dt" />
-        <result property="endDt" column="end_dt" />
-        <result property="wdthLen" column="wdth_len" />
-        <result property="vrtcLen" column="vrtc_len" />
-        <result property="popupType" column="popup_type" />
-        <result property="popupUseYn" column="popup_use_yn" />
-        <result property="vdoUrl" column="vdo_url" />
-        <result property="linkUrl" column="link_url" />
-        <result property="fileMngId" column="file_mng_id" />
-        <result property="sn" column="sn" />
-        <result property="pageType" column="page_type" />
-        <result property="useYn" column="use_yn" />
-        <result property="rgtr" column="rgtr" />
-        <result property="regDt" column="reg_dt" />
-        <result property="mdfr" column="mdfr" />
-        <result property="mdfcnDt" column="mdfcn_dt" />
-        <result property="mbrNm" column="mbr_nm" />
-    </resultMap>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.13
-        내   용 : 팝업 등록
-    -->
-    <insert id="insertPopup" parameterType="PopupVO" useGeneratedKeys="true" keyProperty="popupId">
-        INSERT INTO popup_mng (
-            popup_id
-            , popup_ttl
-            , bgng_dt
-            , end_dt
-            , wdth_len
-            , vrtc_len
-            , popup_type
-            , popup_use_yn
-            , vdo_url
-            , link_url
-            , file_mng_id
-            , sn
-            , page_type
-            , use_yn
-            , rgtr
-            , reg_dt
-        ) VALUES (
-            #{popupId}
-            , #{popupTtl}
-            , #{bgngDt}::timestamp
-            , #{endDt}::timestamp
-            , #{wdthLen}
-            , #{vrtcLen}
-            , #{popupType}
-            , #{popupUseYn}
-            , #{vdoUrl}
-            , #{linkUrl}
-            , #{fileMngId}
-            , #{sn}
-            , #{pageType}
-            , 'Y'
-            , #{rgtr}
-            , NOW()
-        )
-    </insert>
-
-    <!-- SELECT SQL -->
-    <sql id="selectItem">
-        SELECT pm.popup_id
-             , pm.popup_ttl
-             , TO_CHAR(pm.bgng_dt, 'YYYY-MM-DD HH24:MI') AS bgng_dt
-             , TO_CHAR(pm.end_dt, 'YYYY-MM-DD HH24:MI') AS end_dt
-             , pm.wdth_len
-             , pm.vrtc_len
-             , pm.popup_type
-             , pm.popup_use_yn
-             , pm.vdo_url
-             , pm.link_url
-             , pm.file_mng_id
-             , pm.sn
-             , pm.page_type
-             , pm.use_yn
-             , pm.rgtr
-             , TO_CHAR(pm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
-             , pm.mdfr
-             , TO_CHAR(pm.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
-             , mi.mbr_nm
-          FROM popup_mng AS pm
-     LEFT JOIN mbr_info AS mi
-            ON pm.rgtr = mi.mbr_id
-    </sql>
-
-    <sql id="selectRequirement">
-        <if test="searchText != null and searchText != ''">
-            <choose>
-                <when test="searchType != null and searchType != ''">
-                    <if test="searchType == 'popup_ttl'">
-                        AND pm.popup_ttl LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'mbr_nm'">
-                        AND mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    </if>
-                </when>
-                <otherwise>
-                    AND (
-                        pm.popup_ttl LIKE '%' || #{searchText} || '%'
-                    OR
-                        mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    )
-                </otherwise>
-            </choose>
-        </if>
-    </sql>
-    <!-- // SELECT SQL -->
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.13
-        내   용 : 팝업 목록 개수
-    -->
-    <select id="selectPopupListCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(popup_id)
-        FROM popup_mng AS pm
-        LEFT JOIN mbr_info AS mi
-        ON pm.rgtr = mi.mbr_id
-        WHERE pm.use_yn = 'Y'
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.13
-        내   용 : 팝업 목록 조회
-    -->
-    <select id="selectPopupList" parameterType="Pagination" resultMap="popupMap">
-        <include refid="selectItem" />
-        WHERE pm.use_yn = 'Y'
-        <include refid="selectRequirement" />
-        ORDER BY reg_dt DESC
-        LIMIT #{recordSize} OFFSET #{limitStart}
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.13
-        내   용 : 팝업 상세 조회
-    -->
-    <select id="selectPopupDetail" parameterType="PopupVO" resultMap="popupMap">
-        <include refid="selectItem" />
-        WHERE pm.popup_id = #{popupId}
-          AND pm.use_yn = 'Y'
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.13
-        내   용 : 팝업 수정
-    -->
-    <update id="updatePopup" parameterType="PopupVO">
-        UPDATE popup_mng
-        SET popup_ttl = #{popupTtl}
-          , bgng_dt = #{bgngDt}::timestamp
-          , end_dt = #{endDt}::timestamp
-          , wdth_len = #{wdthLen}
-          , vrtc_len = #{vrtcLen}
-          , popup_type = #{popupType}
-          , popup_use_yn = #{popupUseYn}
-          , vdo_url = #{vdoUrl}
-          , link_url = #{linkUrl}
-          , file_mng_id = #{fileMngId}
-          , sn = #{sn}
-          , page_type = #{pageType}
-          , use_yn = #{useYn}
-          , mdfr = #{mdfr}
-          , mdfcn_dt = NOW()
-        WHERE popup_id = #{popupId}
-    </update>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.22
-        내   용 : 팝업 목록 조회 (팝업창 띄우는 용도)
-    -->
-    <select id="selectPopupListByPage" parameterType="String" resultMap="popupMap">
-        <include refid="selectItem" />
-        WHERE pm.use_yn = 'Y'
-        AND pm.popup_use_yn = 'Y'
-        AND pm.page_type = #{pageType}
-        AND now() >= pm.bgng_dt::timestamp
-        AND pm.end_dt::timestamp >= now()
-        ORDER BY reg_dt DESC
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.23
-        내   용 : 매일 자정에 종료일이 지난 팝업 사용여부 변경
-    -->
-    <update id="cleanExpiredPopups">
-        UPDATE popup_mng
-        SET popup_use_yn = 'N'
-          , mdfr = null
-          , mdfcn_dt = NOW()
-        WHERE end_dt &lt;= NOW()
-    </update>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.28
-        내   용 : 팝업 최신 목록 조회 (최신글 5건 출력)
-    -->
-    <select id="selectPopupListByNew" resultMap="popupMap">
-        <include refid="selectItem" />
-        WHERE pm.use_yn = 'Y'
-        ORDER BY pm.reg_dt DESC
-        LIMIT 5
-    </select>
-</mapper>(No newline at end of file)
 
build/resources/main/mybatis/mapper/prvcInqHstry/prvcInqHstry-SQL.xml (deleted)
--- build/resources/main/mybatis/mapper/prvcInqHstry/prvcInqHstry-SQL.xml
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-    작 성 자 : 박정하
-    작 성 일 : 2024.05.22
-    내   용 : 개인정보 조회 이력 관련
--->
-<mapper namespace="com.takensoft.cms.prvcInqHstry.dao.PrvcInqHstryDAO">
-    <!-- 개인정보 조회 이력 resultMap -->
-    <resultMap id="prvcInqHstryMap" type="PrvcInqHstryVO">
-        <result property="inqHstryId" column="inq_hstry_id" />
-        <result property="inqTrprId" column="inq_trpr_id" />
-        <result property="inqRsn" column="inq_rsn" />
-        <result property="inqIp" column="inq_ip" />
-        <result property="rdr" column="rdr" />
-        <result property="inqDt" column="inq_dt" />
-        <result property="mbrNm" column="mbr_nm" />
-        <result property="lgnId" column="lgn_id" />
-    </resultMap>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.22
-        내   용 : 개인정보조회 이력 등록
-    -->
-    <insert id="insertPrvcInqHstry" parameterType="PrvcInqHstryVO">
-        INSERT INTO prvc_inq_hstry (
-            inq_trpr_id
-            , inq_rsn
-            , inq_ip
-            , rdr
-            , inq_dt
-        ) VALUES (
-            #{inqTrprId}
-            , #{inqRsn}
-            , #{inqIp}
-            , #{rdr}
-            , now()
-        )
-    </insert>
-
-    <!-- SELECT SQL -->
-    <sql id="selectItem">
-        SELECT pih.inq_hstry_id
-             , pih.inq_trpr_id
-             , pih.inq_rsn
-             , pih.inq_ip
-             , pih.rdr
-             , TO_CHAR(pih.inq_dt, 'YYYY-MM-DD HH24:MI') AS inq_dt
-             , mi.mbr_nm
-             , (SELECT lgn_id FROM mbr_info WHERE pih.inq_trpr_id = mbr_id) AS lgn_id
-        FROM prvc_inq_hstry AS pih
-        LEFT JOIN mbr_info AS mi
-        ON pih.rdr = mi.mbr_id
-    </sql>
-
-    <sql id="selectRequirement">
-        <if test="startDt != null and startDt != ''">
-            AND pih.inq_dt >= #{startDt}::timestamp
-        </if>
-        <if test="endDt != null and endDt != ''">
-            AND #{endDt}::timestamp >= pih.inq_dt
-        </if>
-        <if test="searchText != null and searchText != ''">
-            <choose>
-                <when test="searchType != null and searchType != ''">
-                    <if test="searchType == 'inqRdr'">
-                        AND mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    </if>
-                    <if test="searchType == 'inqTrprId'">
-                        AND pih.inq_trpr_id IN (select mbr_id
-                        from mbr_info
-                        where lgn_id LIKE '%' || #{searchText} || '%')
-                    </if>
-                </when>
-                <otherwise>
-                    AND (
-                        mi.mbr_nm LIKE '%' || #{searchText} || '%'
-                    OR
-                        pih.inq_trpr_id IN (select mbr_id
-                        from mbr_info
-                        where lgn_id LIKE '%' || #{searchText} || '%')
-                    )
-                </otherwise>
-            </choose>
-        </if>
-    </sql>
-    <!-- // SELECT SQL -->
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.27
-        내   용 : 개인정보조회 이력 개수
-    -->
-    <select id="selectPrvcInqHstryListCnt" parameterType="Pagination" resultType="Integer">
-        SELECT COUNT(pih.inq_hstry_id)
-        FROM prvc_inq_hstry AS pih
-        LEFT JOIN mbr_info AS mi
-        ON pih.rdr = mi.mbr_id
-        WHERE true
-        <include refid="selectRequirement" />
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.27
-        내   용 : 개인정보조회 이력 조회
-    -->
-    <select id="selectPrvcInqHstryList" parameterType="Pagination" resultMap="prvcInqHstryMap">
-        <include refid="selectItem" />
-        WHERE true
-        <include refid="selectRequirement" />
-        ORDER BY pih.inq_dt DESC
-        LIMIT #{recordSize} OFFSET #{limitStart}
-    </select>
-
-    <!--
-        작 성 자 : 박정하
-        작 성 일 : 2024.05.27
-        내   용 : 개인정보조회 이력 상세 조회
-    -->
-    <select id="selectPrvcInqHstryDetail" parameterType="Integer" resultMap="prvcInqHstryMap">
-        <include refid="selectItem" />
-        WHERE pih.inq_hstry_id = #{inqHstryId}
-    </select>
-</mapper>(No newline at end of file)
src/main/java/com/takensoft/cms/accesCtrl/service/Impl/AccesCtrlServiceImpl.java
--- src/main/java/com/takensoft/cms/accesCtrl/service/Impl/AccesCtrlServiceImpl.java
+++ src/main/java/com/takensoft/cms/accesCtrl/service/Impl/AccesCtrlServiceImpl.java
@@ -51,6 +51,7 @@
      * @return Map<String, Object>
      *  - result : 접근 제어 등록 결과
      *  - acsCntrlId : 접근 제어 아이디
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 접근 제어 등록 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -62,7 +63,12 @@
     public Map<String, Object> accesCtrlSave(AccesCtrlVO accesCtrlVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            accesCtrlVO.setRgtr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            accesCtrlVO.setRgtr(writer);
+
             int saveResult = accesCtrlDAO.save(accesCtrlVO);
             if(saveResult == 0) {
                 throw new CustomInsertFailException("접근 제어 등록에 실패했습니다.");
@@ -82,6 +88,7 @@
     /**
      * @param accesCtrlVO - 접근 제어 정보
      * @return int - 접근 제어 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 접근 제어 수정 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -93,7 +100,12 @@
     public int accesCtrlUpdate(AccesCtrlVO accesCtrlVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            accesCtrlVO.setMdfr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            accesCtrlVO.setMdfr(writer);
+
             int result = accesCtrlDAO.update(accesCtrlVO);
             if(result == 0) {
                 throw new CustomUpdateFailException("접근 제어 수정에 실패했습니다.");
src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
--- src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
+++ src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
@@ -119,6 +119,7 @@
     /**
      * @param authorVO - 권한 정보
      * @return int - 권한 등록 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 권한 등록 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -130,7 +131,12 @@
     public int authorSave(AuthorVO authorVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            authorVO.setRgtr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            authorVO.setRgtr(writer);
+
             int result = authorDAO.save(authorVO);
             if(result == 0) {
                 throw new CustomInsertFailException("권한 등록에 실패했습니다.");
@@ -153,6 +159,7 @@
     /**
      * @param authorVO - 권한 정보
      * @return int - 권한 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 권한 수정 예외 발생 시
      * @throws CustomDeleteFailException - 권한 삭제 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
@@ -164,7 +171,12 @@
     public int authorUpdate(AuthorVO authorVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            authorVO.setMdfr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            authorVO.setMdfr(writer);
+
             int result = authorDAO.update(authorVO);
             if(result == 0) {
                 if(authorVO.getUseYn() != null && authorVO.getUseYn().equals("N")) {
src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
@@ -437,6 +437,7 @@
     /**
      * @param bbsCnVO - 게시판 정보
      * @return int - 게시판 내용 삭제 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomDeleteFailException - 게시판 내용 삭제 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -448,6 +449,9 @@
         try {
             // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
             bbsCnVO.setMdfr(writer);
 
             int result = bbsCnDAO.delete(bbsCnVO);
src/main/java/com/takensoft/cms/cntxtPth/service/Impl/CntxtPthServiceImpl.java
--- src/main/java/com/takensoft/cms/cntxtPth/service/Impl/CntxtPthServiceImpl.java
+++ src/main/java/com/takensoft/cms/cntxtPth/service/Impl/CntxtPthServiceImpl.java
@@ -3,10 +3,8 @@
 import com.takensoft.cms.cntxtPth.dao.CntxtPthDAO;
 import com.takensoft.cms.cntxtPth.service.CntxtPthService;
 import com.takensoft.cms.cntxtPth.vo.CntxtPthVO;
-import com.takensoft.common.Pagination;
-import com.takensoft.common.exception.CustomDeleteFailException;
 import com.takensoft.common.exception.CustomInsertFailException;
-import com.takensoft.common.exception.CustomUpdateFailException;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.idgen.service.IdgenService;
 import com.takensoft.common.util.JWTUtil;
 import lombok.RequiredArgsConstructor;
@@ -68,6 +66,7 @@
     /**
      * @param cntxtPthVO - 컨텍스트 패스 정보
      * @return int - 컨텍스트 패스 등록 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 컨텍스트 패스 등록 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -80,7 +79,12 @@
     public int cntxtPthSave(CntxtPthVO cntxtPthVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            cntxtPthVO.setRgtr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            cntxtPthVO.setRgtr(writer);
+
             cntxtPthVO.setCntxtPthId(cntxtPthIdgn.getNextStringId()); // 컨텍스트 패스 아이디 생성
             int result = cntxtPthDAO.save(cntxtPthVO);
             if(result == 0) {
src/main/java/com/takensoft/cms/codeManage/service/Impl/CodeManageServiceImpl.java
--- src/main/java/com/takensoft/cms/codeManage/service/Impl/CodeManageServiceImpl.java
+++ src/main/java/com/takensoft/cms/codeManage/service/Impl/CodeManageServiceImpl.java
@@ -3,8 +3,8 @@
 import com.takensoft.cms.codeManage.dao.CodeManageDAO;
 import com.takensoft.cms.codeManage.service.CodeManageService;
 import com.takensoft.cms.codeManage.vo.CodeManageVO;
-import com.takensoft.cms.dept.vo.DeptVO;
 import com.takensoft.common.exception.CustomInsertFailException;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.util.JWTUtil;
 import com.takensoft.common.HierachyVO;
@@ -70,6 +70,7 @@
     /**
      * @param codeManageVO - 공통코드 정보
      * @return int - 등록 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 등록 실패 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -91,8 +92,14 @@
                 codeManageVO.setCdGrd(0);
                 codeManageVO.setCdSn(codeManageDAO.findByCdSn(null) + 1);
             }
+
             // 등록된 토큰에서 사용자 정보 조회
-            codeManageVO.setRgtr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            codeManageVO.setRgtr(writer);
+
             // 코드 등록 결과
             int result = codeManageDAO.save(codeManageVO);
             if(result == 0) {
@@ -111,6 +118,7 @@
     /**
      * @param codeManageVO - 공통코드 정보
      * @return int - 등록 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -122,13 +130,18 @@
     public int cdUpdate(CodeManageVO codeManageVO){
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            codeManageVO.setMdfr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            codeManageVO.setMdfr(writer);
+
             // 코드 수정
             int result = codeManageDAO.update(codeManageVO);
             if(result == 0) {
                 throw new CustomUpdateFailException("공통 코드 수정 실패");
             }
-            // 해당 코드가 변경됨에 따라 하위 코드의 상위 코드값 변경
+            // 해당 코드가 변경됨에 따라 하위 코드의 상위 코드값 변경 (cd의 수정은 불가능 하므로 하위코드의 상위cd값 변경 로직 삭제)
 //            int updateChild = codeManageDAO.updateUpCd(codeManageVO);
 //            if(updateChild == 0) {
 //                throw new CustomUpdateFailException("하위 공통 코드 수정 실패");
@@ -337,6 +350,7 @@
     /**
      * @param deptList - 부서 코드 목록
      * @return int - 부서 코드 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -347,7 +361,11 @@
     @Transactional(rollbackFor = Exception.class)
     public int updateList(List<HierachyVO> deptList) {
         int result = 0;
+        // 등록된 토큰에서 사용자 정보 조회
         String writer = jwtUtil.getWriter();
+        if (writer == null || writer.isEmpty()) {
+            throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+        }
 
         if(deptList != null && deptList.size() > 0) {
             int sn = 1;
src/main/java/com/takensoft/cms/contsType/service/Impl/ContsTypeServiceImpl.java
--- src/main/java/com/takensoft/cms/contsType/service/Impl/ContsTypeServiceImpl.java
+++ src/main/java/com/takensoft/cms/contsType/service/Impl/ContsTypeServiceImpl.java
@@ -11,6 +11,7 @@
 import com.takensoft.cms.menu.vo.MenuVO;
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.CustomInsertFailException;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.idgen.service.IdgenService;
 import com.takensoft.common.util.JWTUtil;
@@ -56,6 +57,7 @@
     /**
      * @param contsTypeVO - 콘텐츠 유형 객체
      * @return HashMap<String, Object> - 콘텐츠 유형 등록 결과값
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 콘텐츠 유형 등록 실패 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -75,7 +77,11 @@
             contsTypeVO.setContsId(contsId);
 
             // 등록된 토큰에서 사용자 정보 조회
-            contsTypeVO.setRgtr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            contsTypeVO.setRgtr(writer);
 
             // 콘텐츠 유형 등록 결과
             int insertResult = contsTypeDAO.save(contsTypeVO);
@@ -116,6 +122,7 @@
     /**
      * @param contsTypeVO - 콘텐츠 유형 객체
      * @return int - 콘텐츠 유형 수정 결과값
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -130,7 +137,11 @@
             // 콘텐츠 유형 수정 결과
             int result = 0;
             // 등록된 토큰에서 사용자 정보 조회
-            contsTypeVO.setMdfr(jwtUtil.getWriter());
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            contsTypeVO.setMdfr(writer);
 
             result = contsTypeDAO.update(contsTypeVO);
             if (result == 0) {
src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
--- src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
+++ src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
@@ -8,6 +8,7 @@
 import com.takensoft.common.HierachyVO;
 import com.takensoft.common.exception.CustomDeleteFailException;
 import com.takensoft.common.exception.CustomInsertFailException;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.idgen.service.IdgenService;
 import com.takensoft.common.util.JWTUtil;
@@ -50,6 +51,7 @@
     /**
      * @param deptVO - 부서 정보 VO
      * @return HashMap<String, Object> - 부서 정보
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 부서 등록 실패 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -76,7 +78,14 @@
                 deptVO.setDeptGrd(0);
                 deptVO.setDeptSn(deptDAO.findByDeptSn(null) + 1);
             }
-            deptVO.setRgtr(jwtUtil.getWriter()); // 작성자 정보 등록
+
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            deptVO.setRgtr(writer); // 작성자 정보 등록
+
             insertResult = deptDAO.save(deptVO);
             if(insertResult == 0) {
                 throw new CustomInsertFailException("부서 등록 실패");
@@ -85,7 +94,7 @@
             if (deptVO.getAuthrtList().size() > 0) {
                 for (DeptAuthrtVO vo : deptVO.getAuthrtList()) {
                     vo.setDeptId(deptId);
-                    vo.setRgtr(jwtUtil.getWriter());
+                    vo.setRgtr(writer);
                     int insertDeptAuth = deptDAO.authrtSave(vo); // 부서 권한 등록 결과
                     if(insertDeptAuth == 0) {
                         throw new CustomInsertFailException("부서 권한 등록 실패");
@@ -108,6 +117,7 @@
     /**
      * @param deptMbrVO - 부서 사용자 정보 VO
      * @return int - 부서 사용자 등록 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 부서 사용자 등록 실패 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -120,7 +130,14 @@
         try {
             // 부서 사용자 등록 결과
             int result = 0;
-            deptMbrVO.setRgtr(jwtUtil.getWriter()); // 작성자 정보 등록
+
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            deptMbrVO.setRgtr(writer); // 작성자 정보 등록
+
             result = deptDAO.deptMbrSave(deptMbrVO); // 부서 사용자 등록
             if(result == 0) {
                 throw new CustomInsertFailException("부서 사용자 등록 실패");
@@ -224,6 +241,7 @@
     /**
      * @param deptVO - 부서 정보 VO
      * @return int - 부서 정보 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -237,7 +255,13 @@
         try {
             // 부서 정보 수정 결과
             int result = 0;
-            deptVO.setMdfr(jwtUtil.getWriter()); // 토큰에서 사용자 정보 추출
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            deptVO.setMdfr(writer); // 토큰에서 사용자 정보 추출
+
             result = deptDAO.update(deptVO); // 부서정보 수정
             if (result == 0) {
                 throw new CustomUpdateFailException("부서 정보 수정 실패");
@@ -251,7 +275,7 @@
             if (deptVO.getAuthrtList().size() > 0) {
                 for (DeptAuthrtVO vo : deptVO.getAuthrtList()) {
                     vo.setDeptId(deptVO.getDeptId());
-                    vo.setRgtr(jwtUtil.getWriter());
+                    vo.setRgtr(writer);
                     int insertDeptAuth = deptDAO.authrtSave(vo); // 부서 권한 등록 결과
                     if (insertDeptAuth == 0) {
                         throw new CustomInsertFailException("부서 권한 등록 실패");
@@ -385,6 +409,7 @@
     /**
      * @param deptList - 부서 목록 객체
      * @return int - 부서 정보 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -397,7 +422,11 @@
     public int updateList(List<HierachyVO> deptList) {
         try {
             int result = 0;
+            // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
 
             if (deptList != null && deptList.size() > 0) {
                 int sn = 1;
src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
--- src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
+++ src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
@@ -11,6 +11,7 @@
 import com.takensoft.cms.mber.vo.MberAuthorVO;
 import com.takensoft.cms.mber.vo.MberVO;
 import com.takensoft.common.Pagination;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.idgen.service.IdgenService;
 import com.takensoft.common.util.HttpRequestUtil;
 import com.takensoft.common.util.JWTUtil;
@@ -61,23 +62,23 @@
     @Override
     public HashMap<String, Object> mbrList(HashMap<String, String> params) {
         try {
-        Pagination search = new Pagination(0, params);
-        int cnt = admMbrDAO.mbrListCnt(search);
+            Pagination search = new Pagination(0, params);
+            int cnt = admMbrDAO.mbrListCnt(search);
 
-        Pagination pagination = new Pagination(cnt, params);
-        List<AdmMbrDTO> list = admMbrDAO.mbrList(pagination);
+            Pagination pagination = new Pagination(cnt, params);
+            List<AdmMbrDTO> list = admMbrDAO.mbrList(pagination);
 
-        // 휴대폰번호 복호화
-        for (AdmMbrDTO admMbrDTO : list) {
-            if (admMbrDTO.getMblTelno() != null && !admMbrDTO.getMblTelno().equals("")) {
-                admMbrDTO.setMblTelno(Secret.decrypt(admMbrDTO.getMblTelno().toString()));
+            // 휴대폰번호 복호화
+            for (AdmMbrDTO admMbrDTO : list) {
+                if (admMbrDTO.getMblTelno() != null && !admMbrDTO.getMblTelno().equals("")) {
+                    admMbrDTO.setMblTelno(Secret.decrypt(admMbrDTO.getMblTelno().toString()));
+                }
             }
-        }
 
-        HashMap<String, Object> result = new HashMap<>();
-        result.put("list", list);
-        result.put("pagination", pagination);
-        return result;
+            HashMap<String, Object> result = new HashMap<>();
+            result.put("list", list);
+            result.put("pagination", pagination);
+            return result;
         } catch (DataAccessException dae) {
             throw dae;
         } catch (Exception e) {
@@ -131,6 +132,7 @@
     /**
      * @param admMbrDTO -회원정보
      * @return int - 회원정보 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
      *
@@ -140,48 +142,52 @@
     @Transactional(rollbackFor = Exception.class)
     public int updateMbr(AdmMbrDTO admMbrDTO){
         try {
-        // 비밀번호 변경
-        if (admMbrDTO.getPswd() != null && !admMbrDTO.getPswd().equals("")) {
-            PasswordDTO passwordDTO = new PasswordDTO();
-            passwordDTO.setMbrId(admMbrDTO.getMbrId());
-            passwordDTO.setNewPswd(admMbrDTO.getPswd());
-            mbrService.updatePassword(passwordDTO);
-        }
-
-        // 연락처 암호화
-        if(admMbrDTO.getMblTelno() != null && !admMbrDTO.getMblTelno().equals("")){
-            admMbrDTO.setMblTelno(Secret.encrypt(admMbrDTO.getMblTelno()));
-        }
-        if(admMbrDTO.getTelno() != null && !admMbrDTO.getTelno().equals("")) {
-            admMbrDTO.setTelno(Secret.encrypt(admMbrDTO.getTelno()));
-        }
-
-        // 수정자 조회 및 등록
-        String writer = jwtUtil.getWriter();
-        admMbrDTO.setMdfr(writer);
-
-        // 회원정보 수정
-        int result = admMbrDAO.updateMbr(admMbrDTO);
-
-        // 권한 수정
-        result += admMbrDAO.deleteAuthorListByMbrId(admMbrDTO.getMbrId()); // 회원 권한 전체 삭제
-        if (admMbrDTO.getUseYn().equals("Y")) { // 수정일 경우 회원 권한 재 등록
-            if(admMbrDTO.getAuthorList() != null && admMbrDTO.getAuthorList().size() > 0) {
-                for(MberAuthorVO mberAuthorVO : admMbrDTO.getAuthorList()) {
-                    mberAuthorVO.setMbrId(admMbrDTO.getMbrId());
-                    mberAuthorVO.setRgtr(writer);
-                    result += admMbrDAO.insertAuthor(mberAuthorVO);
-                }
+            // 비밀번호 변경
+            if (admMbrDTO.getPswd() != null && !admMbrDTO.getPswd().equals("")) {
+                PasswordDTO passwordDTO = new PasswordDTO();
+                passwordDTO.setMbrId(admMbrDTO.getMbrId());
+                passwordDTO.setNewPswd(admMbrDTO.getPswd());
+                mbrService.updatePassword(passwordDTO);
             }
-        } else { // 회원 탈퇴일 경우 관련 정보 삭제
-            // 부서 사용자 삭제
-            DeptMbrVO deptMbrVO = new DeptMbrVO();
-            deptMbrVO.setMbrId(admMbrDTO.getMbrId());
-            List<DeptMbrVO> deptMbrList = new ArrayList<>();
-            deptMbrList.add(deptMbrVO);
-            int deptResult = deptService.deptMbrDelete(deptMbrList);
-        }
-        return result;
+
+            // 연락처 암호화
+            if(admMbrDTO.getMblTelno() != null && !admMbrDTO.getMblTelno().equals("")){
+                admMbrDTO.setMblTelno(Secret.encrypt(admMbrDTO.getMblTelno()));
+            }
+            if(admMbrDTO.getTelno() != null && !admMbrDTO.getTelno().equals("")) {
+                admMbrDTO.setTelno(Secret.encrypt(admMbrDTO.getTelno()));
+            }
+
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            // 수정자 등록
+            admMbrDTO.setMdfr(writer);
+
+            // 회원정보 수정
+            int result = admMbrDAO.updateMbr(admMbrDTO);
+
+            // 권한 수정
+            result += admMbrDAO.deleteAuthorListByMbrId(admMbrDTO.getMbrId()); // 회원 권한 전체 삭제
+            if (admMbrDTO.getUseYn().equals("Y")) { // 수정일 경우 회원 권한 재 등록
+                if(admMbrDTO.getAuthorList() != null && admMbrDTO.getAuthorList().size() > 0) {
+                    for(MberAuthorVO mberAuthorVO : admMbrDTO.getAuthorList()) {
+                        mberAuthorVO.setMbrId(admMbrDTO.getMbrId());
+                        mberAuthorVO.setRgtr(writer);
+                        result += admMbrDAO.insertAuthor(mberAuthorVO);
+                    }
+                }
+            } else { // 회원 탈퇴일 경우 관련 정보 삭제
+                // 부서 사용자 삭제
+                DeptMbrVO deptMbrVO = new DeptMbrVO();
+                deptMbrVO.setMbrId(admMbrDTO.getMbrId());
+                List<DeptMbrVO> deptMbrList = new ArrayList<>();
+                deptMbrList.add(deptMbrVO);
+                int deptResult = deptService.deptMbrDelete(deptMbrList);
+            }
+            return result;
         } catch (DataAccessException dae) {
             throw dae;
         } catch (Exception e) {
@@ -195,6 +201,7 @@
          * @return HashMap<String, Object> - 회원정보 등록 결과
          *  - mbrId : 회원 아이디
          *  - insertResult : 회원등록정보 결과
+         * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
          * @throws DataAccessException - db 관련 예외 발생 시
          * @throws Exception - 그 외 예외 발생 시
          *
@@ -223,11 +230,13 @@
                 String ip = httpRequestUtil.getIp(req);
                 joinDTO.setFrstRegIp(ip);
 
-                // 작성자 등록
+                // 등록된 토큰에서 사용자 정보 조회
                 String writer = jwtUtil.getWriter();
-                if(writer != null && !writer.equals("")) {
-                    joinDTO.setRgtr(writer);
+                if (writer == null || writer.isEmpty()) {
+                    throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
                 }
+                // 작성자 등록
+                joinDTO.setRgtr(writer);
 
                 // 회원정보 등록
                 int insertResult = admMbrDAO.mbrInsert(joinDTO);
src/main/java/com/takensoft/cms/mber/service/Impl/MberServiceImpl.java
--- src/main/java/com/takensoft/cms/mber/service/Impl/MberServiceImpl.java
+++ src/main/java/com/takensoft/cms/mber/service/Impl/MberServiceImpl.java
@@ -6,6 +6,7 @@
 import com.takensoft.cms.mber.service.MberService;
 import com.takensoft.cms.mber.vo.MberAuthorVO;
 import com.takensoft.cms.mber.vo.MberVO;
+import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
 import com.takensoft.common.util.HttpRequestUtil;
 import com.takensoft.common.util.JWTUtil;
@@ -68,12 +69,25 @@
     /**
      * @param lgnId - 로그인 아이디
      * @return boolean - 아이디 아이디 중복 여부
+     * @throws CustomIdTakenException
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 아이디 중복 검사
      */
     @Override
     public boolean findByCheckLoginId(String lgnId) {
-        return mberDAO.findByCheckLoginId(lgnId.toLowerCase());
+        try {
+            boolean result = mberDAO.findByCheckLoginId(lgnId.toLowerCase());
+            if (result) {
+                throw new CustomIdTakenException("이미 사용 중인 아이디입니다.");
+            }
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
@@ -82,6 +96,7 @@
      * @return HashMap<String, Object> - 회원정보 등록 결과
      *  - mbrId : 회원 아이디
      *  - result : 회원등록정보 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
      *
@@ -112,10 +127,13 @@
             // 아이피 조회 및 등록
             joinDTO.setFrstRegIp(httpRequestUtil.getIp(req));
 
-            // 작성자 조회 및 등록
-            if(jwtUtil.getWriter() != null && !jwtUtil.getWriter().equals("")) {
-                joinDTO.setRgtr(jwtUtil.getWriter());
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
+            // 작성자 등록
+            joinDTO.setRgtr(writer);
 
             // 회원정보 등록
             HashMap<String, Object> result = new HashMap<>();
@@ -127,10 +145,9 @@
             if(joinDTO.getAuthorList().size() > 0) {
                 for(MberAuthorVO vo : joinDTO.getAuthorList()) {
                     vo.setMbrId(joinDTO.getMbrId());
-                    // 작성자 조회 및 등록
-                    if(jwtUtil.getWriter() != null && !jwtUtil.getWriter().equals("")) {
-                        vo.setRgtr(jwtUtil.getWriter());
-                    }
+                    // 작성자 등록
+                    vo.setRgtr(writer);
+
                     authorResult += mberDAO.authorSave(vo);
                 }
             }
@@ -147,6 +164,7 @@
     /**
      * @param passwordDTO - 비밀번호
      * @return boolean - 비밀번호 사용 가능 여부
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws DataAccessException - db 관련 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
      *
@@ -155,8 +173,15 @@
     @Override
     public boolean passwordCheck(PasswordDTO passwordDTO){
         try {
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+
             // 회원 정보 호출
-            MberVO mbr = mberDAO.findByMber(jwtUtil.getWriter());
+            MberVO mbr = mberDAO.findByMber(writer);
+
             // 비밀번호 비교 후 성공 시 비밀번호 수정 후 true 반환
             if(bCryptPasswordEncoder.matches(passwordDTO.getPswd(), mbr.getPassword())) {
                 passwordDTO.setNewPswd(bCryptPasswordEncoder.encode(passwordDTO.getNewPswd()));
@@ -206,12 +231,27 @@
     /**
      * @param passwordDTO - 비밀번호
      * @return int - 비밀번호 수정 결과
+     * @throws CustomUpdateFailException - 비밀번호 수정 실패 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 비밀번호 수정
      */
     @Override
     public int updatePassword(PasswordDTO passwordDTO) {
-        passwordDTO.setNewPswd(bCryptPasswordEncoder.encode(passwordDTO.getNewPswd()));
-        return mberDAO.updatePassword(passwordDTO);
+        try {
+            int result = 0;
+            passwordDTO.setNewPswd(bCryptPasswordEncoder.encode(passwordDTO.getNewPswd()));
+
+            result = mberDAO.updatePassword(passwordDTO);
+            if (result == 0) {
+                throw new CustomUpdateFailException("비밀번호 수정에 실패했습니다.");
+            }
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 }
(No newline at end of file)
src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
@@ -9,6 +9,7 @@
 import com.takensoft.cms.menu.vo.MenuVO;
 import com.takensoft.common.exception.CustomInsertFailException;
 import com.takensoft.common.exception.CustomNoChangeException;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.util.JWTUtil;
 import lombok.RequiredArgsConstructor;
@@ -119,6 +120,7 @@
     /**
      * @param params - 메뉴 권한 수정 정보
      * @return int - 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomNoChangeException - 변경할 내용이 없는 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
@@ -177,7 +179,12 @@
             // 변경된 메뉴 권한 수정
             if(!changedMenuList.isEmpty()) {
                 for (HashMap<String, Object> menu : changedMenuList) {
-                    menu.put("mdfr", jwtUtil.getWriter());
+                    // 등록된 토큰에서 사용자 정보 조회
+                    String writer = jwtUtil.getWriter();
+                    if (writer == null || writer.isEmpty()) {
+                        throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+                    }
+                    menu.put("mdfr", writer);
                     menu.put("authrtCd", authrtCd);
                     int updateResult = menuAuthorDAO.updateMenuAuthrt(menu);
                     if (updateResult == 0) {
src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
@@ -11,6 +11,7 @@
 import com.takensoft.common.HierachyVO;
 import com.takensoft.common.exception.CustomDeleteFailException;
 import com.takensoft.common.exception.CustomInsertFailException;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.idgen.service.IdgenService;
 import com.takensoft.common.util.JWTUtil;
@@ -73,6 +74,7 @@
     /**
      * @param menuVO - 메뉴 VO
      * @return int - 메뉴 등록 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 등록 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -99,8 +101,12 @@
                 menuVO.setMenuGrd(0);
                 menuVO.setMenuSn(menuDAO.findByMenuSn(null) + 1);
             }
-            // 작성자 정보
+
+            // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
             menuVO.setRgtr(writer);
             // 시스템 제공 여부
             menuVO.setSysPvsnYn("1"); // 사용자 등록
@@ -221,6 +227,7 @@
     /**
      * @param menuVO - 메뉴 VO
      * @return int - 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -232,8 +239,13 @@
     @CacheEvict(value = "findByMenuWithRouter", allEntries = true)
     public int MenuUpdate(MenuVO menuVO) {
         try{
-            // 토큰정보에서 사용자 아이디 조회 후 등록
-            menuVO.setMdfr(jwtUtil.getWriter());
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            menuVO.setMdfr(writer);
+
             int updateResult = menuDAO.update(menuVO);
             if(updateResult == 0) {
                 throw new CustomUpdateFailException("메뉴 수정에 실패했습니다.");
@@ -321,6 +333,7 @@
     /**
      * @param menuVO - 메뉴 VO
      * @return int - 삭제 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 삭제 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -331,7 +344,13 @@
     @Transactional(rollbackFor = Exception.class)
     public int menuDelete(MenuVO menuVO) {
         try {
-            menuVO.setMdfr(jwtUtil.getWriter());
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            menuVO.setMdfr(writer);
+
             // 삭제에 대한 결과
             int deleteResult = menuDAO.deleteMenu(menuVO);
             if(deleteResult == 0) {
@@ -382,6 +401,7 @@
     /**
      * @param deptList - 부서 리스트
      * @return int - 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -395,7 +415,11 @@
     public int updateList(List<HierachyVO> deptList){
         int result = 0;
         try {
+            // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
 
             if (deptList != null && deptList.size() > 0) {
                 int sn = 1;
src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
--- src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
+++ src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
@@ -50,6 +50,7 @@
      * @param popupVO - 팝업 등록 정보를 포함하는 객체
      * @param multipartFileList - 첨부파일 리스트
      * @return HashMap<String, Object> - 등록 결과 및 팝업 ID
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 등록 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -65,8 +66,12 @@
             String popupId = popupIdgn.getNextStringId();
             popupVO.setPopupId(popupId);
 
-            // 등록자 삽입
+            // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            // 등록자 삽입
             popupVO.setRgtr(writer);
 
             HashMap<String, Object> result = new HashMap<>();
@@ -205,6 +210,7 @@
      * @param popupVO - 팝업 정보
      * @param multipartFileList - 첨부파일 리스트
      * @return int - 수정 결과(0: 실패, 1: 성공)
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -216,8 +222,12 @@
     @Transactional(rollbackFor = Exception.class)
     public int popupUpdate(PopupVO popupVO, List<MultipartFile> multipartFileList){
         try {
-            // 수정자 삽입
+            // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            // 수정자 삽입
             popupVO.setMdfr(writer);
 
             // 파일 수정
@@ -260,6 +270,7 @@
     /**
      * @param popupVO - 팝업 정보
      * @return int - 삭제 결과(0: 실패, 1: 성공)
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomDeleteFailException - 삭제 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws Exception - 그 외 예외 발생 시
@@ -270,8 +281,12 @@
     @Transactional(rollbackFor = Exception.class)
     public int popupDelete(PopupVO popupVO){
         try {
-            // 수정자 삽입
+            // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            // 수정자 삽입
             popupVO.setMdfr(writer);
 
             // 파일매니저 삭제
src/main/java/com/takensoft/cms/prvcInqHstry/service/Impl/PrvcInqHstryServiceImpl.java
--- src/main/java/com/takensoft/cms/prvcInqHstry/service/Impl/PrvcInqHstryServiceImpl.java
+++ src/main/java/com/takensoft/cms/prvcInqHstry/service/Impl/PrvcInqHstryServiceImpl.java
@@ -7,6 +7,7 @@
 import com.takensoft.cms.prvcInqHstry.vo.PrvcInqHstryVO;
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.CustomInsertFailException;
+import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.util.HttpRequestUtil;
 import com.takensoft.common.util.JWTUtil;
 import lombok.RequiredArgsConstructor;
@@ -46,6 +47,7 @@
      * @param request - HttpServletRequest 객체
      * @param prvcInqHstryVO - 개인정보 조회 이력 VO 객체
      * @return int - 개인정보 조회 이력 등록 여부 (성공:1, 실패:0)
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
      * @throws CustomInsertFailException - 등록 실패 예외 발생 시
      * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
      * @throws NullPointerException - Null 값이 발생할 경우
@@ -59,9 +61,14 @@
             String ipAdd = httpRequestUtil.getIp(request);
             prvcInqHstryVO.setInqIp(ipAdd);
 
-            // 조회자 삽입
+            // 등록된 토큰에서 사용자 정보 조회
             String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            // 조회자 삽입
             prvcInqHstryVO.setRdr(writer);
+
             int saveResult = prvcInqHstryDAO.insertPrvcInqHstry(prvcInqHstryVO);
             if(saveResult == 0) {
                 throw new CustomInsertFailException("개인정보 조회 이력 등록에 실패했습니다.");
Add a comment
List