/* AE :: FIRST PREMIUM CLASSES TO START WITH IN AVIOR ASIA PROJECT */
/* AE :: FIRST PREMIUM CLASSES TO START WITH IN AVIOR ASIA PROJECT */
/* AE :: FIRST PREMIUM CLASSES TO START WITH IN AVIOR ASIA PROJECT */
/* AE :: FIRST PREMIUM CLASSES TO START WITH IN AVIOR ASIA PROJECT */
.AVIOR a {text-decoration: none; color: #827249;}

/* INSTA CLASS */
.INSTA {position:absolute; right:30px; bottom:30px; width:100px; height:100px; display:flex; align-items:center; justify-content:center; z-index:5;}
.INSTA a {position:relative; width:100px; height:100px; display:flex; align-items:center; justify-content:center; box-sizing:border-box; border:1px solid rgba(255,255,255,.75); border-radius:50%; background:rgba(255,255,255,.10); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:#fff; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; text-decoration:none; cursor:pointer; box-shadow:0 10px 35px rgba(0,0,0,.22),inset 0 0 25px rgba(255,255,255,.12); transition:all .45s cubic-bezier(.22,1,.36,1); overflow:visible;}
.INSTA a::before {content:""; position:absolute; inset:-8px; border:1px solid rgba(255,255,255,.35); border-radius:50%; opacity:0; transform:scale(.75); pointer-events:none; animation:instaWave 3s ease-out infinite;}
.INSTA a::after {content:""; position:absolute; inset:-3px; border:1px solid rgba(255,255,255,.65); border-radius:50%; box-shadow:0 0 18px rgba(255,255,255,.12); pointer-events:none; animation:instaGlow 2.8s ease-in-out infinite;}
@keyframes instaWave {0%{opacity:0;transform:scale(.75)}15%{opacity:.7}65%{opacity:.18}100%{opacity:0;transform:scale(1.65)}}
@keyframes instaGlow {0%,100%{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
.INSTA a:hover {transform:scale(1.12); background:rgba(255,255,255,.20); border-color:#fff; letter-spacing:3px; box-shadow:0 0 0 8px rgba(255,255,255,.05),0 18px 50px rgba(0,0,0,.30),inset 0 0 30px rgba(255,255,255,.20);}
.INSTA a:hover::before {animation-duration:1.8s;}
.INSTA a:hover::after {opacity:1;box-shadow:0 0 25px rgba(255,255,255,.25);}
@media(max-width:768px){.INSTA{right:20px;bottom:20px;width:82px;height:82px}.INSTA a{width:82px;height:82px;font-size:10px;letter-spacing:1.5px}}

/* POSITION CLASSES */
.PSC {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}

/* LETTER SPACE */
.LS1 {letter-spacing: 1px;}
.LS2 {letter-spacing: 2px;}

/* FLEX SPACE */
.FSB {justify-content: space-between;}
.FFS {align-self: flex-start;}
.FWF {flex-wrap: wrap;}
.FGF {gap: 7px;}

/* TEXT ALIGN */
.TCT {text-align: center;}
.TLT {text-align: left;}
.TRT {text-align: right;}

.TBT {text-align: end;}

/* ALIGN ITEM CENTER */
.ALC {display:flex; justify-content:center; align-items:center; flex:0 1 auto;}
.AIC {display:flex; align-items:center; justify-content:center; text-align:center;}

/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
.BOOK {display: inline-block; align-items: first baseline;}
.BOOK a {display:inline-flex; align-items:center; gap:7px; padding:12px 24px; color:#fff; background:linear-gradient(135deg,#a38563,#5a4630); border:1px solid rgba(255,255,255,.25); border-radius:50px; font-size:14px; font-weight:700; letter-spacing:1px; text-decoration:none; box-shadow: rgba(0, 0, 0, 0.2) 0px 18px 50px -10px; transition:all .4s ease;}
.BOOK a span {font-weight:400; opacity:.85;}
.BOOK a:hover {transform:translateY(-3px) scale(1.03); background:linear-gradient(135deg,#dac097,#8b6b45); box-shadow:0 12px 30px rgba(90,70,48,.4); letter-spacing:1.4px;}

/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* BUZZ BOX : : USER STORIES, SAMPLES , NETWORKS, PARTNERS */
.BUZZ {position:relative; overflow:hidden; background:#241c12; border:1px solid rgba(163,133,99,.55); border-radius:18px; box-shadow:0 12px 35px rgba(36,28,18,.18); transition:all .4s ease; margin-bottom: 10px;}
.BUZZ:hover {transform:translateY(-7px); border-color:#dac097; box-shadow:0 20px 45px rgba(36,28,18,.28);}
.BUZZ .IMA {position:relative; width:100%; height:300px; overflow:hidden;}
.BUZZ .IMA:after {content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(36,28,18,0) 45%,rgba(36,28,18,.7) 100%); pointer-events:none;}
.BUZZ .IMA img {display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s ease;}
.BUZZ:hover .IMA img {transform:scale(1.07);}
.BUZZ .ICON {position:absolute; top:18px; left:18px; z-index:3; width:48px; height:48px; padding:8px; display:flex; align-items:center; justify-content:center; background:rgba(36,28,18,.78); border:1px solid rgba(218,192,151,.65); border-radius:50%; backdrop-filter:blur(8px); box-shadow:0 6px 20px rgba(0,0,0,.22);}
.BUZZ .ICON img {width:100%; height:100%; object-fit:contain;}
.BUZZ .LAB {position:absolute; top:18px; right:18px; z-index:3; min-width:42px; height:30px; display:flex; align-items:center; justify-content:center; background:rgba(36,28,18,.78); border:1px solid rgba(218,192,151,.7); border-radius:20px; backdrop-filter:blur(8px);}
.BUZZ .LAB h6 {margin:0; color:#dac097; font-size:11px; font-weight:600; letter-spacing:1.5px;}
.BUZZ .INFO {position:relative; padding:17px 18px 18px; background:linear-gradient(145deg,#2b2116,#21180f);}
.BUZZ .AUTHOR {margin-bottom:14px;}
.BUZZ .AUTHOR h6 {margin:0; color:#fffaf2; font-size:10px; font-weight:500; letter-spacing:1.5px; text-transform:uppercase;}
.BUZZ .AUTHOR span {color:#a38563; font-weight:400;}
.BUZZ .CLICK {display:flex; align-items:center; gap:8px; width:100%;}
.BUZZ .CLICK .MAIN {flex:1; padding:0;}
.BUZZ .CLICK .SIS {flex:0 0 42px; padding:0;}
.BUZZ .CLICK button {display:flex; align-items:center; justify-content:center; height:40px; border:0; cursor:pointer; font-family:inherit; transition:all .3s ease;}
.BUZZ .CLICK .MAIN button {width:100%; padding:0 22px; color:#241c12; background:linear-gradient(135deg,#dac097,#a38563); border:1px solid #dac097; border-radius:10px; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; box-shadow:0 5px 15px rgba(0,0,0,.18);}
.BUZZ .CLICK .MAIN button:hover {background:#fffaf2; border-color:#fffaf2; transform:translateY(-2px); box-shadow:0 8px 20px rgba(218,192,151,.22);}
.BUZZ .CLICK .SIS button {width:42px; color:#dac097; background:rgba(163,133,99,.08); border:1px solid rgba(218,192,151,.55); border-radius:10px; font-size:13px; box-shadow:inset 0 0 12px rgba(218,192,151,.04);}
.BUZZ .CLICK .SIS button:hover {color:#241c12; background:#dac097; border-color:#dac097; transform:translateY(-2px) rotate(45deg);}

/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
.BOOKPAGE {width:100%; min-height:100vh; box-sizing:border-box; padding:70px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#f8f6f2,#eee9e2);}
.BOOKCARD {width:min(1100px,100%); min-height:650px; display:flex; align-items:stretch; overflow:hidden; background:#fff; border-radius:28px; box-shadow:0 25px 60px rgba(55,43,30,.18);}
.BOOKWELCOME {flex:0 0 40%; min-height:650px; position:relative; display:flex; align-items:center; justify-content:center; box-sizing:border-box; padding:60px; color:#fffaf2; background:linear-gradient(135deg,#5a563c,#8b7658,#a38563); border-radius:0 160px 160px 0;}
.BOOKWELCOME:before {content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent,rgba(255,255,255,.08),transparent); pointer-events:none;}
.WELCOMEINNER {position:relative; width:100%; max-width:300px; text-align:center;}
.BOOKEYEBROW {display:block; margin-bottom:18px; font-size:10px; font-weight:600; letter-spacing:4px; text-transform:uppercase; opacity:.8;}
.WELCOMEINNER h2 {margin:0 0 18px; font-size:clamp(30px,3vw,42px); font-weight:500; letter-spacing:-.5px;}
.WELCOMEINNER p {margin:0; font-size:13px; line-height:1.8; opacity:.9;}
.WELCOMEDECOR {display:block; margin-top:35px; font-size:20px; opacity:.8;}

.BOOKFORM {flex:1; min-width:0; box-sizing:border-box; padding:55px 65px 35px; background:#fff; overflow-y:auto;}
.FORMHEAD {margin-bottom:28px;}
.FORMHEAD > span {display:block; margin-bottom:7px; color:#a38563; font-size:9px; font-weight:700; letter-spacing:3px;}
.FORMHEAD h2 {margin:0 0 8px; color:#241c12; font-size:30px; font-weight:500;}
.FORMHEAD p {margin:0; color:#8b8176; font-size:12px; line-height:1.6;}

.BOOKFORM form {width:100%;}
.BOOKFORM fieldset {min-width:0; margin:0 0 17px; padding:0; border:0;}
.BOOKFORM legend {margin:0 0 7px; padding:0; color:#665b50; font-size:10px; font-weight:600; letter-spacing:.4px;}
.BOOKFORM input,.BOOKFORM select {width:100%; height:40px; box-sizing:border-box; padding:0 14px; color:#40372f; font-family:inherit; font-size:11px; background:#f5f3f0; border:1px solid transparent; border-radius:7px; outline:none; transition:.25s ease;}
.BOOKFORM input::placeholder {color:#aaa29a;}
.BOOKFORM select {appearance:auto; cursor:pointer;}
.BOOKFORM input:focus,.BOOKFORM select:focus {background:#fff; border-color:#a38563; box-shadow:0 0 0 3px rgba(163,133,99,.08);}

.FORMROW {display:flex; gap:14px;}
.FORMROW fieldset {flex:1;}

.BOOKCONFIRM {margin-top:8px; padding-top:5px;}
.BOOKCONFIRM label {display:flex; align-items:flex-start; gap:9px; color:#80766c; font-size:10px; line-height:1.6; cursor:pointer;}
.BOOKCONFIRM label input {width:14px; height:14px; flex:0 0 14px; margin:2px 0 0; accent-color:#8d704e;}
.BOOKCONFIRM button {width:180px; height:42px; display:block; margin:20px auto 0; color:#fff; font-family:inherit; font-size:10px; font-weight:700; letter-spacing:1px; background:#241c12; border:1px solid #241c12; border-radius:7px; cursor:pointer; transition:.3s ease;}
.BOOKCONFIRM button:hover:not(:disabled) {background:#a38563; border-color:#a38563; transform:translateY(-2px); box-shadow:0 8px 20px rgba(163,133,99,.25);}
.BOOKCONFIRM button:disabled {opacity:.35; cursor:not-allowed;}

.BOOKFOOT {display:flex; align-items:center; justify-content:center; gap:12px; margin-top:30px; padding-top:20px; border-top:1px solid #eeeae5;}
.BOOKFOOT span {color:#a38563; font-size:9px;}
.BOOKFOOT p {margin:0; color:#aaa39b; font-size:8px; letter-spacing:.5px;}

@media (max-width:900px) {
.BOOKPAGE {padding:45px;}
.BOOKCARD {width:100%;}
.BOOKWELCOME {flex-basis:38%; padding:40px;}
.BOOKFORM {padding:45px 40px 30px;}
}

@media (max-width:700px) {
.BOOKPAGE {min-height:100vh; padding:30px; align-items:flex-start;}
.BOOKCARD {width:100%; display:flex; flex-direction:column; border-radius:22px; overflow:hidden;}
.BOOKWELCOME {flex:none; width:100%; min-height:260px; padding:45px 30px; border-radius:0 0 100px 100px;}
.WELCOMEINNER {max-width:330px;}
.WELCOMEINNER h2 {font-size:30px;}
.BOOKFORM {width:100%; padding:40px 28px 30px; overflow:visible;}
.FORMHEAD h2 {font-size:27px;}
.FORMROW {flex-direction:column; gap:0;}
.BOOKFORM fieldset {margin-bottom:16px;}
.BOOKCONFIRM button {width:100%;}
}

@media (max-width:430px) {
.BOOKPAGE {padding:18px;}
.BOOKCARD {border-radius:18px;}
.BOOKWELCOME {min-height:235px; padding:35px 24px; border-radius:0 0 80px 80px;}
.BOOKFORM {padding:32px 20px 25px;}
.FORMHEAD {margin-bottom:24px;}
.FORMHEAD h2 {font-size:24px;}
.WELCOMEINNER h2 {font-size:27px;}
}


/* COMMENT BOX  ------------------------*/
/* COMMENT BOX  ------------------------*/
/* COMMENT BOX  ------------------------*/
/* COMMENT BOX  ------------------------*/
@keyframes comm { 0%,100% {background: linear-gradient(to top,#fcfff0,#fffaf4);} 50% {background: linear-gradient(to top,#fcffef,#ffffed);}}
.COMIN {flex-basis: 32.5%; border: 1px solid #fff4e5; transition: all 400ms ease-in-out; box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;}
.COMIN {padding: 15px; border-radius: 10px; margin: 5px; background: fixed linear-gradient(to top,#fff9f2,#feffe7); border-radius: 10px 45px 5px 15px;}
.COMIN {animation: comm 3s alternate-reverse infinite;}

.COMIN h4 {font-size: 12px !important; font-weight: 900; padding-bottom: 7px;}
.COMIN h5 {font-size: 18px; font-weight: bold; color: #5a4630 !important;}
.COMIN h5 span {font-weight: bold; color: #e1b769 !important;}
.COMIN p {font-size: 14px !important; padding-top: 7px; font-weight: bold; color: #5f554a !important;}
.COMIN h6 {font-size: 9px !important; padding-top: 7px; font-weight: bold; color: #5f554a !important;}

.COMIN:hover {box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; border: 1px solid #e7d8c3;}
.COMIN:hover {background: fixed linear-gradient(to top,#fbffea,#fff0de); animation: none; border-radius: 10px 95px 5px 15px;}

.COMIN:hover h5 {color: #997247 !important; font-weight: 900;}
.COMIN:hover h5 span {color: #cecf76 !important;}

/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
.MOSS {background: linear-gradient(to top, #dab793,#d9da93,#dab793);}

.F7.CONTACT {width:100%; display:flex; justify-content:center; padding:7px; box-sizing:border-box; background:none;}

.CONTACTS {width:100%; max-width:520px; padding:22px; box-sizing:border-box; background:#D6C090; border-radius:28px; box-shadow:0 8px 30px rgba(0,0,0,.12); font-family:Arial,Helvetica,sans-serif; color:#292929;}

/* TITLE */

.CONTACTS > h4 {margin:0 0 18px; padding:0 4px; font-size:24px; font-weight:500; line-height:1.2; letter-spacing:-.5px; color:#292929;}

/* MAP OUTER BOX */

.MAPLAB {width:100%; padding:12px; box-sizing:border-box; background:#ffebbf; border-radius:22px;}

/* MAP CARD */

.MAPCON {width:100%; min-height:160px; display:flex; overflow:hidden; background:#fff1d4; border-radius:18px; box-shadow:0 6px 18px rgba(0,0,0,.16);}

/* MAP IMAGE */

.MAPY {flex:0 0 42%; min-width:0; overflow:hidden; background:#fffbf4;}

/* MAP IMAGE */

.MAPY img {display:block; width:100%; height:100%; min-height:160px; object-fit:cover;}

/* MAP INFORMATION */

.MALI {flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; padding:18px; box-sizing:border-box;}

/* LOCATION TITLE */

.MALI h5 {margin:0 0 7px; overflow:hidden; font-size:16px; font-weight:500; line-height:1.25; white-space:nowrap; text-overflow:ellipsis; color:#292929;}

/* ADDRESS */

.MALI address {margin:0 0 7px; font-size:13px; font-style:normal; line-height:1.4; color:#697276;}

/* GOOGLE LINK */

.MALI a {width:max-content; max-width:100%; overflow:hidden; font-size:13px; line-height:1.3; color:#008fa3; text-decoration:none; white-space:nowrap; text-overflow:ellipsis;}

/* SOCIAL AREA */

.MYSOCIAL {width:100%; display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:20px; padding:18px 10px 14px; box-sizing:border-box; background:#fff9ed; border-radius:22px;}

/* SOCIAL BUTTON */

.MYSOCIAL button {display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-width:0; padding:2px 4px; border:0; background:transparent; cursor:pointer; color:#292929;}

/* SOCIAL ICON */

.MYSOCIAL button img {display:block; width:52px; height:52px; padding:0; object-fit:cover; border-radius:50%; box-sizing:border-box; transition:transform .25s ease,box-shadow .25s ease;}

/* SOCIAL LABEL */

.MYSOCIAL button h6 {margin:0; font-size:12px; font-weight:400; line-height:1.2; white-space:nowrap; color:#292929;}

/* SOCIAL HOVER */

.MYSOCIAL button:hover img {transform:translateY(-3px) scale(1.05); box-shadow:0 6px 14px rgba(0,0,0,.16);}

/* BOTTOM TEXT */

.CONTACTS > p {margin:18px 4px 0; text-align:center; font-size:13px; font-weight:400; line-height:1.4; color:#666f72;}


/* ==============================
   MOBILE
   ============================== */

@media(max-width:600px) {

.F7.CONTACT {padding:8px;}

.CONTACTS {padding:16px; border-radius:24px;}

.CONTACTS > h4 {font-size:21px; margin-bottom:15px;}

.MAPLAB {padding:9px; border-radius:19px;}

.MAPCON {min-height:145px; border-radius:16px;}

.MAPY {flex-basis:42%;}

.MAPY img {min-height:145px;}

.MALI {padding:14px;}

.MALI h5 {font-size:14px;}

.MALI address {font-size:11px;}

.MALI a {font-size:11px;}

.MYSOCIAL {margin-top:16px; padding:15px 5px 12px; border-radius:19px; gap:2px;}

.MYSOCIAL button img {width:46px; height:46px;}

.MYSOCIAL button h6 {font-size:10px;}

.CONTACTS > p {font-size:11px; margin-top:15px;}

}

/* MAP */
.MAP {position:relative; width:100%; overflow:hidden; border-radius:20px;}
.MAP iframe {display:block; width:100%; height:950px; border:0;}
.MAPBTN {position:absolute; top:5px; left:5px; padding:10px 18px; color:#241c12; background:#fffaf2; border:1px solid #a38563; border-radius:12px; font-size:13px; font-weight:600; text-decoration:none; box-shadow:0 5px 15px rgba(0,0,0,.15); transition:.3s ease;}
.MAPBTN:hover {color:#fffaf2; background:#241c12; transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.2);}

/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
footer {background: fixed linear-gradient(to top,#a59f88,#b1aa7f); padding: 50px; border-top-left-radius: 10rem; border-top-right-radius: 25rem;}
 
footer .FIB h2 {font-size: 9rem; font-weight: 300; font-family: "Gloock", serif; color: #FFF9E2;}
footer .FIB h2 span {color: #c3c5a1;}

footer .CONNECT h4 {font-size: 55px; font-weight: 900; color: #47482e; padding-bottom: 5px; font-family: "Explora", serif;}
footer .CONNECT h5 {font-size: 15px; font-weight: 900; color: #fcffca; padding-bottom: 5px;}
footer .CONNECT h5 a {text-decoration: none; font-size: 15px; font-weight: 900; color: #fdffcf;}
footer .CONNECT .SOCIAL a {text-decoration: none; font-size: 15px; font-weight: 900; color: #fdffcf; transform: scale(0.9); transition: all 900ms ease;}
footer .CONNECT .SOCIAL a:hover {color: #fffcf8; letter-spacing: 2px;}

footer .LINKS a {text-decoration: none; font-size: 15px; font-weight: 900; color: #fcff9a; transition: all 200ms ease-in;}
footer .LINKS a span  {color: #e3d6a1;}
footer .LINKS a:hover {color: #fff9e2; width: 99%;}
footer .LINKS a:hover span {color: #fff1b9;}

footer .PRO {overflow: hidden !important; padding: 10px 20px;}
footer .PRO a {display: inline-block; text-decoration: none; font-size: 55px; font-weight: 900; animation: PROFF 800ms ease-in-out infinite alternate; font-family: "Plaster", system-ui;}
@keyframes PROFF {0% {transform: scale(1) rotate(0deg); letter-spacing: -5px; color: #fcff9a; text-shadow: 0 0 0px #fcff9a;} 50% {transform: scale(1.1) rotate(-1deg); letter-spacing: 4px; color: #fcff9a; text-shadow: 0 0 12px #fcff9a, 0 0 25px #fcff9a;} 100% {transform: scale(1) rotate(1deg); letter-spacing: -2px; color: #fcff9a; text-shadow: 0 0 5px #fcff9a;}}
footer .PRO a:hover {animation: none; color: #3f4023;}

.COPYRIGHT {padding: 7px; background: fixed linear-gradient(to right,#241c12,#624d35,#241c12); text-align: center;}
.COPYRIGHT a {text-decoration: none; font-size: 10px; color: #e1b769; letter-spacing: 5px; transition: all 300ms ease-in-out;}
.COPYRIGHT a:hover {font-weight: 900; font-size: 10px; color: #ffe2ac; letter-spacing: 2px;}

/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */
/* -------------------------------------  CLASS : :   -------------------------- */