{"id":8510,"date":"2026-09-23T10:11:11","date_gmt":"2026-09-23T03:11:11","guid":{"rendered":"https:\/\/tokuteigino.vn\/?page_id=8510"},"modified":"2026-10-27T10:44:12","modified_gmt":"2026-10-27T03:44:12","slug":"so-do-tu-duy-cbtp-gino2","status":"publish","type":"page","link":"https:\/\/tokuteigino.vn\/vi\/so-do-tu-duy-cbtp-gino2\/","title":{"rendered":"S\u01a1 \u0111\u1ed3 t\u01b0 duy cbtp gino2"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n<meta name=\"theme-color\" content=\"#10291a\">\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-title\" content=\"CBTP Gino2 \u30de\u30a4\u30f3\u30c9\u30de\u30c3\u30d7\">\n<title>S\u01a1 \u0111\u1ed3 t\u01b0 duy CBTP Gino2 \uff5c \u7dcf\u307e\u3068\u3081\u30de\u30a4\u30f3\u30c9\u30de\u30c3\u30d7<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n<style>\n\/* ===== SCOPE: m\u1ecdi rule \u0111\u1ec1u n\u1eb1m d\u01b0\u1edbi #tkg-mindmap-cbtp2, theo m\u00e0u th\u01b0\u01a1ng hi\u1ec7u Manten\/Tokuteigino ===== *\/\n#tkg-mindmap-cbtp2{\n  --bg:#f4f7f2; --ink:#101522; --muted:#4a5a4f;\n  --brand-dark:#10291a;   \/* xanh \u0111\u1eadm th\u01b0\u01a1ng hi\u1ec7u *\/\n  --brand-pink:#fae6e6;   \/* h\u1ed3ng nh\u1ea1t th\u01b0\u01a1ng hi\u1ec7u *\/\n  --brand-green:#e5efd7;  \/* xanh nh\u1ea1t th\u01b0\u01a1ng hi\u1ec7u *\/\n  --c1:#10291a; --c2:#7a3b3b; --c3:#8a6a12; --c4:#3d5a3f;\n  --line:#c9d6c3; --card:#ffffff;\n\n  --font-vi:\"Be Vietnam Pro\",\"Inter\",-apple-system,BlinkMacSystemFont,\"SF Pro Text\",\n            \"Segoe UI\",\"Helvetica Neue\",Arial,\"Liberation Sans\",sans-serif;\n  --font-jp:\"Hiragino Kaku Gothic ProN\",\"Yu Gothic\",\"Noto Sans JP\",\"MS PGothic\",\n            \"Meiryo\",system-ui,sans-serif;\n}\n#tkg-mindmap-cbtp2 *, #tkg-mindmap-cbtp2 *::before, #tkg-mindmap-cbtp2 *::after{box-sizing:border-box}\n#tkg-mindmap-cbtp2{\n  margin:0;padding:0;background:var(--bg);color:var(--ink);\n  font-family:var(--font-vi);min-height:100vh;\n  --sidebar-w:296px; \/* ~ t\u1ef7 l\u1ec7 chu\u1ea9n sidebar \u0111i\u1ec1u h\u01b0\u1edbng (280\u2013320px, theo Material\/Notion\/NotebookLM) *\/\n}\n\n\/* ===== KHUNG T\u1ed4NG: mobile = x\u1ebfp d\u1ecdc (topbar tr\u00ean, c\u00e2y b\u00ean d\u01b0\u1edbi);\n   desktop = sidebar tr\u00e1i c\u1ed1 \u0111\u1ecbnh + v\u00f9ng c\u00e2y b\u00ean ph\u1ea3i ===== *\/\n#tkg-mindmap-cbtp2 .mm-shell{display:flex;flex-direction:column;min-height:100vh}\n#tkg-mindmap-cbtp2 .mm-sidebar{display:none}\n#tkg-mindmap-cbtp2 .mm-main{flex:1;min-width:0}\n\n#tkg-mindmap-cbtp2 header.mm-topbar{\n  position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);\n  padding:8px 14px;box-shadow:0 2px 10px rgba(16,41,26,.08)\n}\n#tkg-mindmap-cbtp2 .h-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n#tkg-mindmap-cbtp2 .h-row + .h-row{margin-top:7px}\n#tkg-mindmap-cbtp2 .spacer{flex:1}\n#tkg-mindmap-cbtp2 button,#tkg-mindmap-cbtp2 .btn{\n  font-family:var(--font-vi),var(--font-jp);font-size:12px;font-weight:700;cursor:pointer;\n  border:1px solid var(--line);background:#fff;color:var(--brand-dark);\n  padding:6px 11px;border-radius:8px;transition:.15s\n}\n#tkg-mindmap-cbtp2 button:hover{background:var(--brand-green);border-color:#9fb98f}\n#tkg-mindmap-cbtp2 button.on{background:var(--brand-dark);color:#fff;border-color:var(--brand-dark)}\n#tkg-mindmap-cbtp2 .mm-search{\n  font-family:var(--font-vi),var(--font-jp);font-size:12px;padding:6px 10px;border:1px solid var(--line);\n  border-radius:8px;min-width:150px;outline:none;background:#fff\n}\n#tkg-mindmap-cbtp2 .mm-search:focus{border-color:var(--brand-dark);box-shadow:0 0 0 3px rgba(16,41,26,.14)}\n\n\/* B\u1ed9 ch\u1ecdn ch\u01b0\u01a1ng \u2014 thay cho d\u00e3y n\u00fat \u0111\u1ea7y \u0111\u1ee7, g\u00f3i g\u1ecdn trong 1 n\u00fat m\u1edf dropdown *\/\n#tkg-mindmap-cbtp2 .chap-wrap{position:relative}\n#tkg-mindmap-cbtp2 .chap-select{\n  display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:8px;\n  background:var(--brand-dark);color:#fff;border-color:var(--brand-dark);white-space:nowrap;max-width:280px\n}\n#tkg-mindmap-cbtp2 .chap-select:hover{background:#0a1c12}\n#tkg-mindmap-cbtp2 .chap-select .chap-tag{font-weight:800;font-size:12px}\n#tkg-mindmap-cbtp2 .chap-select .chap-sub{font-weight:500;font-size:11px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}\n#tkg-mindmap-cbtp2 .chap-select .chap-caret{font-size:10px;opacity:.85}\n#tkg-mindmap-cbtp2 .chap-menu{\n  display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:60;background:#fff;\n  border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(16,41,26,.18);\n  min-width:260px;max-width:320px;overflow:hidden\n}\n#tkg-mindmap-cbtp2 .chap-menu.open{display:block}\n#tkg-mindmap-cbtp2 .chap-menu button{\n  display:block;width:100%;text-align:left;border:none;border-radius:0;padding:9px 13px;\n  font-size:12.5px;background:#fff;border-bottom:1px solid var(--line)\n}\n#tkg-mindmap-cbtp2 .chap-menu button:last-child{border-bottom:none}\n#tkg-mindmap-cbtp2 .chap-menu button:hover{background:var(--brand-green)}\n#tkg-mindmap-cbtp2 .chap-menu button.on{background:var(--brand-dark);color:#fff}\n#tkg-mindmap-cbtp2 .chap-menu button small{display:block;font-size:10px;font-weight:600;opacity:.75;margin-top:1px}\n\n\/* Thanh c\u00f4ng c\u1ee5 d\u1ea1ng icon g\u1ecdn, g\u1ed9p thay cho d\u00e3y n\u00fat ch\u1eef \u0111\u1ea7y \u0111\u1ee7 *\/\n#tkg-mindmap-cbtp2 .icon-toolbar{display:flex;gap:5px;flex-wrap:wrap}\n#tkg-mindmap-cbtp2 .icon-btn{padding:6px 9px;font-size:11.5px;border-radius:7px}\n#tkg-mindmap-cbtp2 .icon-sep{width:1px;align-self:stretch;background:var(--line);margin:0 2px}\n\n\/* Popover Ch\u00fa th\u00edch & th\u00f4ng tin \u2014 \u1ea9n theo m\u1eb7c \u0111\u1ecbnh, b\u1ea5m \u24d8 \u0111\u1ec3 xem, thay cho d\u1ea3i lu\u00f4n hi\u1ec7n + footer c\u1ed1 \u0111\u1ecbnh *\/\n#tkg-mindmap-cbtp2 .info-pop{\n  display:none;position:absolute;top:100%;right:14px;z-index:60;background:#fff;margin-top:6px;\n  border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(16,41,26,.18);\n  padding:14px 16px;width:min(360px, calc(100vw - 28px))\n}\n#tkg-mindmap-cbtp2 .info-pop.open{display:block}\n#tkg-mindmap-cbtp2 .info-pop-title{font-size:13.5px;font-weight:800;color:var(--brand-dark);margin-bottom:3px}\n#tkg-mindmap-cbtp2 .info-pop-sub{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--line)}\n#tkg-mindmap-cbtp2 .legend{font-family:var(--font-vi),var(--font-jp);display:flex;flex-direction:column;gap:6px;font-size:11.5px;color:var(--muted);font-weight:600}\n#tkg-mindmap-cbtp2 .legend span{display:inline-flex;align-items:center;gap:6px}\n#tkg-mindmap-cbtp2 .dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}\n#tkg-mindmap-cbtp2 .info-pop-note{font-size:10.5px;color:var(--muted);line-height:1.55;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}\n\n\/* ===== SIDEBAR (desktop) \u2014 CH\u1ec8 danh s\u00e1ch 6 ch\u01b0\u01a1ng, c\u00e1c ph\u1ea7n kh\u00e1c (t\u00ecm ki\u1ebfm, n\u00fat\n   bung\/thu, ng\u00f4n ng\u1eef, c\u1ee1 ch\u1eef, ch\u00fa th\u00edch) v\u1eabn gi\u1eef nguy\u00ean \u1edf thanh tr\u00ean nh\u01b0 c\u0169 ===== *\/\n#tkg-mindmap-cbtp2 .mm-sidebar{\n  flex-direction:column;background:#fff;border-right:1px solid var(--line);\n  box-shadow:2px 0 10px rgba(16,41,26,.05);overflow-y:auto;padding:16px 14px\n}\n#tkg-mindmap-cbtp2 .mm-sb-label{font-size:10.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;padding:0 4px}\n#tkg-mindmap-cbtp2 .mm-sb-chapters{display:flex;flex-direction:column;gap:4px}\n#tkg-mindmap-cbtp2 .mm-sb-chap-btn{\n  display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;\n  padding:9px 10px;border-radius:8px;border:1px solid transparent;background:transparent;\n  color:var(--ink);font-weight:700;font-size:12.5px\n}\n#tkg-mindmap-cbtp2 .mm-sb-chap-btn .mm-sb-chap-vi{font-weight:500;font-size:11px;color:var(--muted)}\n#tkg-mindmap-cbtp2 .mm-sb-chap-btn:hover{background:var(--brand-green);border-color:#9fb98f}\n#tkg-mindmap-cbtp2 .mm-sb-chap-btn.on{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}\n#tkg-mindmap-cbtp2 .mm-sb-chap-btn.on .mm-sb-chap-vi{color:rgba(255,255,255,.8)}\n\n\/* \u1ea8n n\u00fat ch\u1ecdn ch\u01b0\u01a1ng d\u1ea1ng dropdown tr\u00ean thanh tr\u00ean \u1edf desktop v\u00ec \u0111\u00e3 c\u00f3 sidebar thay th\u1ebf\n   (ch\u1ec9 ph\u1ea7n TRIGGER dropdown n\u00e0y \u1ea9n \u2014 \u00f4 t\u00ecm ki\u1ebfm, c\u00e1c n\u00fat kh\u00e1c v\u1eabn hi\u1ec7n b\u00ecnh th\u01b0\u1eddng) *\/\n@media (min-width:861px){\n  #tkg-mindmap-cbtp2 .mm-chap-trigger{display:none}\n}\n\n#tkg-mindmap-cbtp2 #tmmWrap{padding:18px 26px 40px;overflow-x:auto;cursor:grab}\n#tkg-mindmap-cbtp2 #tmmWrap.mm-dragging{cursor:grabbing;user-select:none}\n\n#tkg-mindmap-cbtp2 #tmmTree{position:relative}\n\/* \u0110\u01b0\u1eddng n\u1ed1i cong m\u01b0\u1ee3t ki\u1ec3u NotebookLM, v\u1ebd b\u1eb1ng SVG (xem mmDrawLinks trong JS) thay cho\n   c\u00e1c \u0111o\u1ea1n k\u1ebb ngang\/d\u1ecdc tr\u01b0\u1edbc \u0111\u00e2y *\/\n#tkg-mindmap-cbtp2 .mm-links{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}\n\n\/* align-items:center: node cha n\u1eb1m gi\u1eefa CHI\u1ec0U CAO c\u1ee7a to\u00e0n b\u1ed9 nh\u00e1nh con n\u00f3 \u2014 t\u1ee9c c\u00e1c\n   nh\u00e1nh con to\u1ea3 ra C\u1ea2 TR\u00caN L\u1eaaN D\u01af\u1edaI node cha (\u0111\u00fang ki\u1ec3u mindmap\/NotebookLM), thay v\u00ec t\u1ea5t\n   c\u1ea3 d\u1ed3n xu\u1ed1ng d\u01b0\u1edbi. Vi\u1ec7c node cha \"tr\u00f4i\" theo khi nh\u00e1nh con bung\/thu l\u00e0 h\u1ec7 qu\u1ea3 t\u1ea5t y\u1ebfu\n   c\u1ee7a c\u00e1ch canh gi\u1eefa n\u00e0y \u2014 \u0111\u01b0\u1ee3c b\u00f9 m\u01b0\u1ee3t b\u1eb1ng camera b\u00e1m theo (mmFollowCenter) trong l\u00fac\n   animate, xem mmToggle\/mmAnimateLinks. *\/\n#tkg-mindmap-cbtp2 .branch{display:flex;align-items:center;position:relative}\n\/* C\u00e2y bung\/thu m\u01b0\u1ee3t ki\u1ec3u NotebookLM: .kids l\u00e0 1 h\u00e0ng grid co gi\u00e3n 1fr\u21940fr (thay v\u00ec display:none\n   \u1ea9n\/hi\u1ec7n t\u1ee9c th\u1eddi), .kids-inner l\u00e0 l\u1edbp b\u1ecdc th\u1ef1c ch\u1ee9a n\u1ed9i dung \u0111\u1ec3 grid c\u00f3 th\u1ec3 \"n\u00e9n\" chi\u1ec1u cao\n   n\u00f3 v\u1ec1 0 m\u1ed9t c\u00e1ch m\u01b0\u1ee3t m\u00e0 \u2014 \u0111\u00e2y l\u00e0 k\u1ef9 thu\u1eadt chu\u1ea9n \u0111\u1ec3 animate height:auto b\u1eb1ng CSS thu\u1ea7n. *\/\n#tkg-mindmap-cbtp2 .kids{\n  position:relative;padding-left:44px;overflow:hidden;\n  display:grid;grid-template-rows:1fr;\n  transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1)\n}\n#tkg-mindmap-cbtp2 .kids-inner{\n  display:flex;flex-direction:column;justify-content:center;min-height:0;overflow:hidden;\n  opacity:1;transition:opacity .22s ease .06s\n}\n#tkg-mindmap-cbtp2 .branch.closed > .kids{grid-template-rows:0fr}\n#tkg-mindmap-cbtp2 .branch.closed > .kids .kids-inner{opacity:0;transition:opacity .12s ease}\n#tkg-mindmap-cbtp2 .kids-inner > .branch{padding:9px 0;position:relative}\n\/* Bung\/thu h\u00e0ng lo\u1ea1t: h\u00e0ng tr\u0103m transition grid l\u1ed3ng nhau c\u00f3 th\u1ec3 k\u1eb9t \u1edf 0fr khi\u1ebfn nh\u00e1nh \u0111\u00e3 m\u1edf v\u1eabn b\u1ecb \u1ea9n *\/\n#tkg-mindmap-cbtp2 #tmmTree.mm-no-anim .kids,#tkg-mindmap-cbtp2 #tmmTree.mm-no-anim .kids-inner{transition:none}\n\/* Card node \u0111\u1ed3ng nh\u1ea5t ki\u1ec3u NotebookLM: n\u1ec1n tr\u1eafng cho M\u1eccI c\u1ea5p, ch\u1ec9 ph\u00e2n bi\u1ec7t b\u1eb1ng vi\u1ec1n\n   tr\u00e1i m\u1ea3nh (accent) + c\u1ee1\/\u0111\u1ed9 \u0111\u1eadm ch\u1eef, thay v\u00ec t\u00f4 c\u1ea3 kh\u1ed1i n\u1ec1n theo m\u00e0u c\u1ea5p nh\u01b0 tr\u01b0\u1edbc \u2014\n   gi\u1eef card \"gi\u1ea5y tr\u1eafng\" nh\u1eb9 nh\u00e0ng, kh\u00f4ng bi\u1ebfn s\u01a1 \u0111\u1ed3 th\u00e0nh b\u1ea3ng m\u00e0u ph\u00e2n m\u1ea3nh. *\/\n#tkg-mindmap-cbtp2 .node{\n  position:relative;z-index:1;background:#fff;border:1px solid var(--line);border-left-width:3px;\n  border-radius:14px;padding:9px 13px;max-width:390px;min-width:120px;\n  box-shadow:0 1px 2px rgba(16,41,26,.05),0 6px 16px rgba(16,41,26,.05);transition:.15s\n}\n#tkg-mindmap-cbtp2 .node:hover{box-shadow:0 1px 2px rgba(16,41,26,.05),0 10px 24px rgba(16,41,26,.12);transform:translateY(-1px);border-color:#b8cf9e}\n#tkg-mindmap-cbtp2 .node.hasKids{cursor:pointer}\n#tkg-mindmap-cbtp2 #tmmTree{font-size:100%}\n#tkg-mindmap-cbtp2 .jp{font-family:var(--font-vi),var(--font-jp);font-size:.91em;font-weight:700;line-height:1.55;color:var(--ink)}\n#tkg-mindmap-cbtp2 .vi{font-family:var(--font-vi);font-size:.8em;color:var(--muted);line-height:1.55;margin-top:5px;font-weight:500;letter-spacing:.005em}\n#tkg-mindmap-cbtp2 .pg{\n  display:inline-block;font-size:.63em;color:var(--brand-dark);background:var(--brand-green);border:1px solid #b8cf9e;\n  border-radius:5px;padding:0 5px;margin-left:6px;vertical-align:1px;font-weight:700;white-space:nowrap\n}\n\/* N\u00fat bung\/thu ki\u1ec3u NotebookLM: v\u00f2ng tr\u00f2n \u0111\u1ee9ng NGO\u00c0I th\u1ebb (anh em v\u1edbi .node trong .nrow),\n   kh\u00f4ng \u0111\u00e8 l\u00ean ch\u1eef; m\u0169i t\u00ean \u2039 = \u0111ang m\u1edf, \u203a = \u0111ang \u0111\u00f3ng (t\u00f4 \u0111\u1eadm \u0111\u1ec3 b\u00e1o c\u00f2n n\u1ed9i dung \u1ea9n). *\/\n#tkg-mindmap-cbtp2 .nrow{display:flex;align-items:center;position:relative;z-index:1}\n#tkg-mindmap-cbtp2 .tog{\n  flex:0 0 auto;width:24px;height:24px;margin-left:8px;padding:0;border-radius:50%;\n  border:1.5px solid var(--line);background:#fff;color:var(--muted);\n  display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 3px rgba(16,41,26,.1)\n}\n#tkg-mindmap-cbtp2 .tog::before{\n  content:\"\";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;\n  transform:translateX(1px) rotate(135deg);transition:transform .2s ease\n}\n#tkg-mindmap-cbtp2 .branch.closed > .nrow > .tog{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}\n#tkg-mindmap-cbtp2 .branch.closed > .nrow > .tog::before{transform:translateX(-1px) rotate(-45deg)}\n#tkg-mindmap-cbtp2 .tog:hover{background:var(--brand-green);border-color:var(--brand-dark);color:var(--brand-dark)}\n#tkg-mindmap-cbtp2 .branch.closed > .nrow > .tog:hover{background:#1f4a30;border-color:#1f4a30;color:#fff}\n#tkg-mindmap-cbtp2 .tog:focus-visible{outline:2px solid var(--brand-dark);outline-offset:2px}\n\n\/* C\u1ea5p 1 \u2014 Ch\u01b0\u01a1ng (node g\u1ed1c): nh\u1ea5n b\u1eb1ng c\u1ee1 ch\u1eef + \u0111\u1ed9 \u0111\u1eadm + vi\u1ec1n d\u00e0y h\u01a1n, KH\u00d4NG t\u00f4 n\u1ec1n \u0111\u1eb7c\n   nh\u01b0 tr\u01b0\u1edbc \u2014 root card trong NotebookLM v\u1eabn l\u00e0 card tr\u1eafng, ch\u1ec9 n\u1ed5i b\u1eadt h\u01a1n v\u1ec1 t\u1ec9 l\u1ec7. *\/\n#tkg-mindmap-cbtp2 .L0 .node{border-left-color:var(--brand-dark);border-width:1.5px;border-left-width:4px;max-width:300px}\n#tkg-mindmap-cbtp2 .L0 .jp{color:var(--brand-dark);font-size:1.14em;font-weight:800}\n#tkg-mindmap-cbtp2 .L0 .vi{color:var(--muted);font-size:.83em;font-weight:600}\n#tkg-mindmap-cbtp2 .L0 .pg{color:#fff;background:var(--brand-dark);border-color:var(--brand-dark)}\n\n\/* C\u1ea5p 2 \u2014 M\u1ee5c l\u1edbn *\/\n#tkg-mindmap-cbtp2 .L1 .node{border-left-color:#5c7d4e;max-width:290px}\n#tkg-mindmap-cbtp2 .L1 .jp{font-size:.97em}\n\n\/* C\u1ea5p 3 \u2014 M\u1ee5c nh\u1ecf *\/\n#tkg-mindmap-cbtp2 .L2 .node{border-left-color:#b56b6b}\n\n\/* C\u1ea5p 4 \u2014 \u00dd ch\u00ednh *\/\n#tkg-mindmap-cbtp2 .L3 .node{border-left-color:#a3801f}\n#tkg-mindmap-cbtp2 .L3 .jp{font-size:.875em}\n\n\/* C\u1ea5p 5 \u2014 T\u1eeb kho\u00e1 & s\u1ed1 li\u1ec7u *\/\n#tkg-mindmap-cbtp2 .L4 .node{border-left-color:#3d5a3f;max-width:460px}\n#tkg-mindmap-cbtp2 .L4 .jp{font-size:.845em;font-weight:600}\n#tkg-mindmap-cbtp2 .L4 .vi{font-size:.75em}\n\n#tkg-mindmap-cbtp2.noVI .vi{display:none}\n#tkg-mindmap-cbtp2 .hit{background:#fde68a !important;border-color:#b45309 !important}\n#tkg-mindmap-cbtp2 .dim{opacity:.22}\n\n@media (max-width:860px){\n  #tkg-mindmap-cbtp2 header.mm-topbar{padding:7px 10px}\n  #tkg-mindmap-cbtp2 .h-row{gap:6px}\n  #tkg-mindmap-cbtp2 button,#tkg-mindmap-cbtp2 .btn{font-size:11.5px;padding:7px 9px;border-radius:9px}\n  #tkg-mindmap-cbtp2 .chap-select{max-width:56%}\n  #tkg-mindmap-cbtp2 .chap-select .chap-sub{max-width:110px}\n  #tkg-mindmap-cbtp2 header.mm-topbar .mm-search{min-width:0;flex:1 1 auto;font-size:16px;padding:8px 10px}\n  #tkg-mindmap-cbtp2 .icon-toolbar{flex:1 1 100%;justify-content:space-between}\n  #tkg-mindmap-cbtp2 .icon-btn{flex:1 1 auto;padding:7px 6px;font-size:11px}\n  #tkg-mindmap-cbtp2 .info-pop{right:8px;left:8px;width:auto}\n  #tkg-mindmap-cbtp2 #tmmWrap{padding:12px 10px 30px;overflow-x:hidden}\n  #tkg-mindmap-cbtp2 .branch{flex-direction:column;align-items:stretch;width:100%}\n  #tkg-mindmap-cbtp2 .kids{padding-left:12px;margin-left:11px;border-left:2px solid var(--line);gap:0}\n  #tkg-mindmap-cbtp2 .kids-inner > .branch{padding:4px 0}\n  #tkg-mindmap-cbtp2 .nrow{align-items:flex-start}\n  #tkg-mindmap-cbtp2 .node{flex:1 1 auto;max-width:100% !important;min-width:0;padding:10px 12px;border-radius:10px}\n  #tkg-mindmap-cbtp2 .tog{width:32px;height:32px;margin:4px 0 0 6px}\n  #tkg-mindmap-cbtp2 .tog::before{width:7px;height:7px;transform:translateY(2px) rotate(-135deg)}\n  #tkg-mindmap-cbtp2 .branch.closed > .nrow > .tog::before{transform:translateY(-2px) rotate(45deg)}\n  #tkg-mindmap-cbtp2 .L0 .node,#tkg-mindmap-cbtp2 .L1 .node,#tkg-mindmap-cbtp2 .L2 .node,#tkg-mindmap-cbtp2 .L3 .node,#tkg-mindmap-cbtp2 .L4 .node{max-width:100% !important}\n  #tkg-mindmap-cbtp2 #tmmTree{font-size:104%}\n}\n@media (max-width:420px){\n  #tkg-mindmap-cbtp2 .kids{padding-left:9px;margin-left:8px}\n  #tkg-mindmap-cbtp2 #tmmTree{font-size:100%}\n}\n\n\/* ===== DESKTOP (>860px): b\u1eadt th\u00eam sidebar tr\u00e1i (ch\u1ec9 danh s\u00e1ch ch\u01b0\u01a1ng), thanh tr\u00ean\n   v\u1eabn hi\u1ec7n nh\u01b0 c\u0169 (ch\u1ec9 \u1ea9n ri\u00eang n\u00fat dropdown ch\u1ecdn ch\u01b0\u01a1ng v\u00ec tr\u00f9ng v\u1edbi sidebar) ===== *\/\n@media (min-width:861px){\n  #tkg-mindmap-cbtp2 .mm-shell{flex-direction:row}\n  #tkg-mindmap-cbtp2 .mm-sidebar{\n    display:flex;width:var(--sidebar-w);flex:0 0 var(--sidebar-w);\n    height:100vh;position:sticky;top:0;align-self:flex-start\n  }\n  \/* C\u00e2y r\u1ed9ng theo n\u1ed9i dung \u0111\u1ec3 #tmmWrap cu\u1ed9n ngang; n\u1ebfu b\u1ecb \u00e9p b\u1eb1ng khung, nh\u00e1nh s\u00e2u co l\u1ea1i v\u00e0 b\u1ecb .kids c\u1eaft m\u1ea5t *\/\n  #tkg-mindmap-cbtp2 #tmmTree{width:max-content;min-width:100%}\n  #tkg-mindmap-cbtp2 .nrow,#tkg-mindmap-cbtp2 .node,#tkg-mindmap-cbtp2 .kids{flex-shrink:0}\n}\n@media (hover:none){\n  #tkg-mindmap-cbtp2 .node:hover{transform:none;box-shadow:0 1px 3px rgba(16,41,26,.08)}\n  #tkg-mindmap-cbtp2 .node{-webkit-tap-highlight-color:rgba(16,41,26,.14)}\n}\n\n\/* ===== AUTH OVERLAY \u2014 \u0111\u1ed3ng b\u1ed9 v\u1edbi c\u00e1c trang kh\u00e1c c\u1ee7a CBTP Gino2 ===== *\/\n#mm-auth-overlay {\n  position: fixed; inset: 0; background: rgba(16, 41, 26, 0.92);\n  display: flex; align-items: center; justify-content: center; z-index: 9999;\n  padding: 20px; font-family: 'Be Vietnam Pro', 'Segoe UI', Arial, sans-serif;\n}\n#mm-auth-overlay .mm-auth-box {\n  background: #fff; border-radius: 16px; padding: 36px 28px; max-width: 360px; width: 100%;\n  text-align: center; box-shadow: 0 20px 48px rgba(0, 0, 0, 0.35); box-sizing: border-box;\n}\n#mm-auth-overlay .mm-auth-icon { font-size: 40px; margin-bottom: 12px; }\n#mm-auth-overlay h3 { font-size: 20px; font-weight: 800; color: #10291a; margin: 0 0 8px; }\n#mm-auth-overlay p { font-size: 14.5px; color: #555; margin: 0 0 24px; line-height: 1.6; }\n#mm-auth-overlay .mm-auth-btn {\n  display: inline-block; background: #10291a; color: #fff; font-size: 15px; font-weight: 700;\n  padding: 12px 32px; border-radius: 30px; text-decoration: none; transition: background 0.2s;\n}\n#mm-auth-overlay .mm-auth-btn:hover { background: #0a1a10; color: #fff; }\n<\/style>\n<\/head>\n<body>\n<!-- TMY-STATUS-GUARD:start (ch\u1eb7n h\u1ecdc vi\u00ean \u0111\u00e3 \u0111\u1ed7; s\u1eeda b\u1eb1ng c\u00e1ch ch\u1ea1y l\u1ea1i script, \u0111\u1eebng s\u1eeda tay) -->\n<script>\n(function () {\n  var API = \"https:\/\/script.google.com\/macros\/s\/AKfycbyUlrzqJTp-PTtc53wVc9XJZykuC0i99Vxprv4CzgO6iMZZyYUb822F9ClPTbgqixWj\/exec\";\n  var TTL = 5 * 60 * 1000;\n  var AMP = String.fromCharCode(38);\n  function get(k) { try { return localStorage.getItem(k); } catch (e) { return null; } }\n  function set(k, v) { try { localStorage.setItem(k, v); } catch (e) {} }\n  var uid = get(\"tmy_userId\");\n  var uname = (get(\"tmy_userName\") || \"\").toLowerCase();\n  if (!uid) return;\n  if (uname === \"admin\") return;\n\n  function block() {\n    [\"tmy_userId\", \"tmy_userName\", \"tmy_classIds\", \"tmy_courseStartDates\",\n     \"tmy_classId\", \"tmy_studentStatus\", \"tmy_learningMode\", \"tmy_statusCheckedAt\"].forEach(function (k) {\n      try { localStorage.removeItem(k); } catch (e) {}\n    });\n    function render() {\n      if (document.getElementById(\"tmyEndedGuard\")) return;\n      try {\n        document.querySelectorAll(\"video,audio\").forEach(function (m) { try { m.pause(); } catch (e) {} });\n        document.querySelectorAll(\"iframe\").forEach(function (f) { try { f.src = \"about:blank\"; } catch (e) {} });\n      } catch (e) {}\n      var d = document.createElement(\"div\");\n      d.id = \"tmyEndedGuard\";\n      d.setAttribute(\"style\", \"position:fixed;top:0;left:0;right:0;bottom:0;z-index:2147483647;background:#f3f6f4;display:flex;align-items:center;justify-content:center;padding:20px;font-family:sans-serif;\");\n      d.innerHTML = '<div style=\"max-width:420px;width:100%;text-align:center;padding:40px 28px;background:#fff;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,0.08);\">'\n        + '<p style=\"margin:0 0 20px;color:#374151;line-height:1.6;font-size:16px;\">Ch\u00fac m\u1eebng b\u1ea1n \u0111\u00e3 ho\u00e0n th\u00e0nh kh\u00f3a h\u1ecdc! Kh\u00f3a h\u1ecdc \u0111\u00e3 k\u1ebft th\u00fac n\u00ean b\u1ea1n kh\u00f4ng th\u1ec3 ti\u1ebfp t\u1ee5c truy c\u1eadp b\u00e0i h\u1ecdc n\u1eefa.<\/p>'\n        + '<a href=\"https:\/\/tokuteigino.vn\/vi\/\" style=\"display:inline-block;padding:12px 24px;background:#10291a;color:#fff;text-decoration:none;border-radius:8px;font-weight:600;\">V\u1ec1 trang ch\u1ee7<\/a>'\n        + '<\/div>';\n      document.body.appendChild(d);\n      document.documentElement.style.overflow = \"hidden\";\n    }\n    if (document.body) render();\n    else document.addEventListener(\"DOMContentLoaded\", render);\n  }\n\n  if (get(\"tmy_studentStatus\") === \"2. \u0110\u00e3 \u0111\u1ed7\") { block(); return; }\n\n  var last = Number(get(\"tmy_statusCheckedAt\")) || 0;\n  if (Date.now() - last < TTL) return;\n\n  function check() {\n    var opts = { priority: \"low\" };\n    var timer = null;\n    if (window.AbortController) {\n      var ac = new AbortController();\n      opts.signal = ac.signal;\n      timer = setTimeout(function () { ac.abort(); }, 15000);\n    }\n    fetch(API + \"?action=checkStatus\" + AMP + \"tmy_userId=\" + encodeURIComponent(uid), opts)\n      .then(function (r) { return r.json(); })\n      .then(function (res) {\n        if (timer) clearTimeout(timer);\n        if (!res) return;\n        if (!res.exists) return;\n        set(\"tmy_statusCheckedAt\", String(Date.now()));\n        if (typeof res.tmy_studentStatus === \"string\") set(\"tmy_studentStatus\", res.tmy_studentStatus);\n        if (res.tmy_studentStatus === \"2. \u0110\u00e3 \u0111\u1ed7\") block();\n      })\n      .catch(function () {});\n  }\n\n  \/* Ch\u1ec9 g\u1ecdi server sau khi trang \u0111\u00e3 t\u1ea3i xong v\u00e0 tr\u00ecnh duy\u1ec7t r\u1ea3nh, \u0111\u1ec3 kh\u00f4ng tranh b\u0103ng th\u00f4ng\n     v\u1edbi vi\u1ec7c t\u1ea3i b\u00e0i t\u1eadp \/ video c\u1ee7a trang. *\/\n  function later() {\n    if (window.requestIdleCallback) requestIdleCallback(check, { timeout: 5000 });\n    else setTimeout(check, 1500);\n  }\n  if (document.readyState === \"complete\") later();\n  else window.addEventListener(\"load\", later);\n})();\n<\/script>\n<!-- TMY-STATUS-GUARD:end -->\n\n<!-- Auth overlay: ch\u1ec9 hi\u1ec7n s\u01a1 \u0111\u1ed3 khi \u0111\u00e3 \u0111\u0103ng nh\u1eadp, \u0111\u1ed3ng b\u1ed9 v\u1edbi c\u00e1c trang t\u00e0i li\u1ec7u kh\u00e1c -->\n<div id=\"mm-auth-overlay\">\n  <div class=\"mm-auth-box\">\n    <div class=\"mm-auth-icon\">\ud83d\udd12<\/div>\n    <h3>B\u1ea1n ch\u01b0a \u0111\u0103ng nh\u1eadp<\/h3>\n    <p>Vui l\u00f2ng \u0111\u0103ng nh\u1eadp v\u00e0o t\u00e0i kho\u1ea3n \u0111\u1ec3 xem s\u01a1 \u0111\u1ed3 t\u01b0 duy.<\/p>\n    <a class=\"mm-auth-btn\" href=\"https:\/\/tokuteigino.vn\/vi\/dang-nhap\/\">\u0110\u0103ng nh\u1eadp<\/a>\n  <\/div>\n<\/div>\n<script>\n  (function() {\n    if (localStorage.getItem('tmy_userId')) {\n      document.getElementById('mm-auth-overlay').style.display = 'none';\n    }\n  })();\n<\/script>\n\n<div id=\"tkg-mindmap-cbtp2\">\n<div class=\"mm-shell\">\n\n  <!-- ===== SIDEBAR (ch\u1ec9 hi\u1ec7n \u1edf desktop): CH\u1ec8 danh s\u00e1ch 6 ch\u01b0\u01a1ng (c\u1ea5p 1) \u2014\n       m\u1ecdi th\u1ee9 kh\u00e1c (t\u00ecm ki\u1ebfm, n\u00fat bung\/thu, ng\u00f4n ng\u1eef, c\u1ee1 ch\u1eef, ch\u00fa th\u00edch) v\u1eabn \u1edf thanh tr\u00ean ===== -->\n  <aside class=\"mm-sidebar\">\n    <div class=\"mm-sb-label\">6 ch\u01b0\u01a1ng<\/div>\n    <div class=\"mm-sb-chapters\" id=\"mmSidebarChapList\"><\/div>\n  <\/aside>\n\n  <main class=\"mm-main\">\n  <!-- ===== THANH TR\u00caN: gi\u1eef nguy\u00ean nh\u01b0 thi\u1ebft k\u1ebf g\u1ed1c, hi\u1ec7n \u1edf m\u1ecdi k\u00edch th\u01b0\u1edbc m\u00e0n h\u00ecnh\n       (ri\u00eang n\u00fat dropdown ch\u1ecdn ch\u01b0\u01a1ng t\u1ef1 \u1ea9n \u1edf desktop v\u00ec \u0111\u00e3 c\u00f3 sidebar b\u00ean tr\u00e1i) ===== -->\n  <header class=\"mm-topbar\">\n    <div class=\"h-row\">\n      <div class=\"chap-wrap mm-chap-trigger\">\n        <button class=\"chap-select\" id=\"mmChapSelect\" onclick=\"mmToggleChapMenu()\">\n          <span class=\"chap-tag\" id=\"mmChapTag\">\u7b2c\uff11\u7ae0<\/span>\n          <span class=\"chap-sub\" id=\"mmChapSubTag\">N\u1ec1n t\u1ea3ng Tr\u01b0\u1edfng b\u1ed9 ph\u1eadn<\/span>\n          <span class=\"chap-caret\">\u25be<\/span>\n        <\/button>\n        <div class=\"chap-menu\" id=\"mmChapMenu\"><\/div>\n      <\/div>\n      <input class=\"mm-search\" type=\"search\" placeholder=\"T\u00ecm ki\u1ebfm \/ \u691c\u7d22\u2026\">\n    <\/div>\n\n    <div class=\"h-row\">\n      <div class=\"icon-toolbar\">\n        <button class=\"icon-btn\" title=\"M\u1edf t\u1ea5t c\u1ea3 c\u00e1c nh\u00e1nh\" onclick=\"mmExpandTo(9)\">M\u1edf t\u1ea5t c\u1ea3<\/button>\n        <button class=\"icon-btn\" title=\"Thu g\u1ecdn t\u1ea5t c\u1ea3\" onclick=\"mmExpandTo(1)\">Thu g\u1ecdn<\/button>\n        <span class=\"icon-sep\"><\/span>\n        <button class=\"icon-btn mm-vi-btn on\" title=\"\u1ea8n\/hi\u1ec7n ph\u1ea7n d\u1ecbch ti\u1ebfng Vi\u1ec7t\" onclick=\"mmToggleVI()\">VI\uff0bJP<\/button>\n        <button class=\"icon-btn\" title=\"Ch\u1eef nh\u1ecf h\u01a1n\" onclick=\"mmZoom(-1)\">A\u2212<\/button>\n        <button class=\"icon-btn\" title=\"Ch\u1eef l\u1edbn h\u01a1n\" onclick=\"mmZoom(1)\">A\uff0b<\/button>\n      <\/div>\n      <div class=\"spacer\"><\/div>\n      <div class=\"chap-wrap\">\n        <button class=\"icon-btn\" title=\"Ch\u00fa th\u00edch &#038; th\u00f4ng tin ngu\u1ed3n\" onclick=\"mmToggleInfo()\">\u24d8<\/button>\n        <div class=\"info-pop\" id=\"mmInfoPop\">\n          <div class=\"info-pop-title\">S\u01a1 \u0111\u1ed3 t\u01b0 duy CBTP Gino2<\/div>\n          <div class=\"info-pop-sub\">\u7dcf\u307e\u3068\u3081\u30de\u30a4\u30f3\u30c9\u30de\u30c3\u30d7 \u00b7 Tr\u1ecdn b\u1ed9 6 ch\u01b0\u01a1ng \u2014 \u7279\u5b9a\u6280\u80fd\uff12\u53f7 \u98f2\u98df\u6599\u54c1\u88fd\u9020\u696d\uff08\u5b66\u7fd2\u7528\u30c6\u30ad\u30b9\u30c8 \u7b2c3.01\u7248\uff09<\/div>\n          <div class=\"legend\">\n            <span><i class=\"dot\" style=\"background:#10291a\"><\/i>C\u1ea5p 1 \u2014 Ch\u01b0\u01a1ng<\/span>\n            <span><i class=\"dot\" style=\"background:#5c7d4e\"><\/i>C\u1ea5p 2 \u2014 M\u1ee5c l\u1edbn\uff08\uff11.\uff12.\uff13.\uff09<\/span>\n            <span><i class=\"dot\" style=\"background:#b56b6b\"><\/i>C\u1ea5p 3 \u2014 M\u1ee5c nh\u1ecf\uff08\uff08\uff11\uff09\uff08\uff12\uff09\uff09<\/span>\n            <span><i class=\"dot\" style=\"background:#a3801f\"><\/i>C\u1ea5p 4 \u2014 \u00dd ch\u00ednh\uff08\u2460\u2461\uff0f\u30a2.\u30a4.\uff09<\/span>\n            <span><i class=\"dot\" style=\"background:#3d5a3f\"><\/i>C\u1ea5p 5 \u2014 T\u1eeb kho\u00e1 &amp; s\u1ed1 li\u1ec7u thi<\/span>\n          <\/div>\n          <div class=\"info-pop-note\">\n            \u51fa\u5178\uff1a\u98f2\u98df\u6599\u54c1\u88fd\u9020\u696d\u6280\u80fd\u8a55\u4fa1\u8a66\u9a13 \u5b66\u7fd2\u7528\u30c6\u30ad\u30b9\u30c8 \u7b2c3.01\u7248\uff08OTAFF, 2026\u5e744\u6708\uff09<br>\n            Ch\u1ea1m v\u00e0o \u00f4 ho\u1eb7c n\u00fat m\u0169i t\u00ean tr\u00f2n b\u00ean c\u1ea1nh \u0111\u1ec3 bung\/thu nh\u00e1nh \u00b7 Tr\u00ean \u0111i\u1ec7n tho\u1ea1i s\u01a1 \u0111\u1ed3 t\u1ef1 chuy\u1ec3n sang d\u1ea1ng d\u1ecdc.\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/header>\n\n  <div id=\"tmmWrap\"><div id=\"tmmTree\"><\/div><\/div>\n  <\/main>\n\n<\/div>\n\n<\/div>\n\n<script src=\"https:\/\/tokuteigino.vn\/wp-content\/uploads\/cbtp-gino2-mindmap-data.js?v=1\"><\/script>\n<script>\n\/* ---------- render (\u0111\u1ed5i t\u00ean h\u00e0m mm* \u0111\u1ec3 tr\u00e1nh xung \u0111\u1ed9t v\u1edbi script kh\u00e1c tr\u00ean trang nh\u00fang) ---------- *\/\nlet mmCurCh = 0;\n\nfunction mmBuild(node, level){\n  const br = document.createElement('div');\n  br.className = 'branch L' + Math.min(level,4);\n  br.dataset.level = level;\n\n  const nd = document.createElement('div');\n  nd.className = 'node' + (node.c && node.c.length ? ' hasKids':'');\n  nd.innerHTML = '<div class=\"jp\">' + node.j + (node.p ? '<span class=\"pg\">'+node.p+'<\/span>' : '') + '<\/div>'\n               + '<div class=\"vi\">' + (node.v||'') + '<\/div>';\n  const row = document.createElement('div');\n  row.className = 'nrow';\n  row.appendChild(nd);\n  br.appendChild(row);\n\n  if(node.c && node.c.length){\n    const tg = document.createElement('button');\n    tg.type='button'; tg.className='tog';\n    tg.setAttribute('aria-expanded','true');\n    tg.setAttribute('aria-label','Thu g\u1ecdn \/ m\u1edf r\u1ed9ng nh\u00e1nh');\n    tg.onclick=(e)=>{e.stopPropagation();mmToggle(br);};\n    row.appendChild(tg);\n    nd.onclick=()=>mmToggle(br);\n\n    \/\/ .kids = khung grid co gi\u00e3n chi\u1ec1u cao (1fr\u21940fr) \u0111\u1ec3 t\u1ea1o hi\u1ec7u \u1ee9ng tr\u01b0\u1ee3t m\u01b0\u1ee3t khi\n    \/\/ bung\/thu, gi\u1ed1ng c\u00e2y mindmap c\u1ee7a NotebookLM; .kids-inner l\u00e0 l\u1edbp b\u1ecdc b\u00ean trong\n    \/\/ th\u1ef1c s\u1ef1 ch\u1ee9a c\u00e1c nh\u00e1nh con \u2014 xem gi\u1ea3i th\u00edch k\u1ef9 thu\u1eadt trong CSS.\n    const kids=document.createElement('div');\n    kids.className='kids';\n    const kidsInner=document.createElement('div');\n    kidsInner.className='kids-inner';\n    node.c.forEach(ch=>kidsInner.appendChild(mmBuild(ch, level+1)));\n    kids.appendChild(kidsInner);\n    br.appendChild(kids);\n  }\n  return br;\n}\nfunction mmSetOpen(br, open){\n  br.classList.toggle('closed', !open);\n  const t=br.querySelector(':scope > .nrow > .tog');\n  if(t) t.setAttribute('aria-expanded', open ? 'true' : 'false');\n}\nfunction mmToggle(br){\n  const closed = !br.classList.contains('closed');\n  mmSetOpen(br, !closed);\n  \/\/ M\u1edf nh\u00e1nh -> \u0111\u01b0a ch\u00ednh node v\u1eeba b\u1ea5m v\u1ec1 gi\u1eefa m\u00e0n h\u00ecnh; \u0111\u00f3ng nh\u00e1nh -> \u0111\u01b0a node cha c\u1ee7a n\u00f3 v\u1ec1 gi\u1eefa.\n  let focusBranch = br;\n  if(closed){\n    const kidsInner = br.parentElement;                 \/\/ .kids-inner\n    const kids = kidsInner ? kidsInner.parentElement : null; \/\/ .kids\n    const parentBranch = kids ? kids.parentElement : null;   \/\/ .branch cha (n\u1ebfu c\u00f3)\n    if(parentBranch && parentBranch.classList && parentBranch.classList.contains('branch')){\n      focusBranch = parentBranch;\n    }\n  }\n  const focusNode = focusBranch.querySelector(':scope > .nrow > .node');\n  mmAnimateLinks(480, focusNode);\n}\n\/* B\u00e1m theo node m\u1ee5c ti\u00eau v\u00e0 k\u00e9o d\u1ea7n n\u00f3 v\u1ec1 gi\u1eefa m\u00e0n h\u00ecnh m\u1ed7i khung h\u00ecnh (easing),\n   thay v\u00ec ch\u1edd \u0111\u1ebfn cu\u1ed1i animation m\u1edbi cu\u1ed9n 1 ph\u00e1t \u2014 nh\u1edd v\u1eady khi node t\u1ef1 d\u1ecbch chuy\u1ec3n\n   do .branch d\u00f9ng align-items:center (h\u00e0ng cao d\u1ea7n l\u00ean khi m\u1edf), viewport \"\u0111u\u1ed5i theo\"\n   m\u01b0\u1ee3t trong su\u1ed1t qu\u00e1 tr\u00ecnh thay v\u00ec b\u1ecb gi\u1eadt c\u1ee5c \u1edf cu\u1ed1i. *\/\nfunction mmFollowCenter(node){\n  const r = node.getBoundingClientRect();\n  const dy = (r.top + r.height\/2) - window.innerHeight\/2;\n  if(Math.abs(dy) > 0.5) window.scrollTo(window.scrollX, window.scrollY + dy*0.22);\n  const wrap = document.getElementById('tmmWrap');\n  if(wrap){\n    const wr = wrap.getBoundingClientRect();\n    const dx = (r.left + r.width\/2) - (wr.left + wr.width\/2);\n    if(Math.abs(dx) > 0.5) wrap.scrollLeft += dx*0.22;\n  }\n}\nfunction mmExpandTo(depth){\n  const tree=document.getElementById('tmmTree');\n  tree.classList.add('mm-no-anim');\n  document.querySelectorAll('#tkg-mindmap-cbtp2 .branch').forEach(b=>{\n    mmSetOpen(b, +b.dataset.level < depth);\n  });\n  void tree.offsetHeight;\n  tree.classList.remove('mm-no-anim');\n  mmDrawLinks();\n}\n\n\/* ---------- \u0110\u01b0\u1eddng n\u1ed1i cong m\u01b0\u1ee3t ki\u1ec3u NotebookLM (v\u1ebd b\u1eb1ng SVG, kh\u00f4ng d\u00f9ng k\u1ebb ngang\/d\u1ecdc) ----------\n   mmDrawLinks(): v\u1ebd l\u1ea1i to\u00e0n b\u1ed9 \u0111\u01b0\u1eddng cong n\u1ed1i t\u1eeb m\u1ed7i node cha (m\u00e9p ph\u1ea3i) sang t\u1eebng node con\n   \u0111ang hi\u1ec3n th\u1ecb (m\u00e9p tr\u00e1i) b\u1eb1ng \u0111\u01b0\u1eddng cong bezier ngang \u2014 c\u00e0ng gi\u1ed1ng NotebookLM.\n   mmAnimateLinks(): trong l\u00fac c\u00e2y \u0111ang tr\u01b0\u1ee3t m\u1edf\/\u0111\u00f3ng (grid-template-rows 1fr\u21940fr, ~320ms),\n   li\u00ean t\u1ee5c v\u1ebd l\u1ea1i \u0111\u01b0\u1eddng cong theo t\u1eebng khung h\u00ecnh (requestAnimationFrame) \u0111\u1ec3 \u0111\u01b0\u1eddng cong\n   \"ch\u1ea3y\" theo \u0111\u00fang v\u1ecb tr\u00ed node \u0111ang di chuy\u1ec3n, thay v\u00ec ch\u1ec9 nh\u1ea3y 1 ph\u00e1t \u1edf cu\u1ed1i. *\/\nfunction mmDrawLinks(){\n  const tree=document.getElementById('tmmTree');\n  if(!tree) return;\n  let svg=document.getElementById('mmLinks');\n  if(window.innerWidth <= 860){\n    if(svg) svg.innerHTML='';\n    return;\n  }\n  if(!svg){\n    svg=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','svg');\n    svg.setAttribute('id','mmLinks');\n    svg.setAttribute('class','mm-links');\n    tree.insertBefore(svg, tree.firstChild);\n  }\n  const w=tree.scrollWidth, h=tree.scrollHeight;\n  svg.setAttribute('width', w);\n  svg.setAttribute('height', h);\n  svg.style.width=w+'px'; svg.style.height=h+'px';\n\n  const treeRect=tree.getBoundingClientRect();\n  let d='';\n  tree.querySelectorAll(':scope .branch').forEach(b=>{\n    if(b.classList.contains('closed')) return; \/\/ nh\u00e1nh \u0111ang \u0111\u00f3ng: kh\u00f4ng v\u1ebd t\u1edbi con\n    const kidsInner=b.querySelector(':scope > .kids > .kids-inner');\n    if(!kidsInner) return;\n    const pr=b.querySelector(':scope > .nrow > .tog').getBoundingClientRect();\n    const x1=pr.right-treeRect.left, y1=pr.top+pr.height\/2-treeRect.top;\n    kidsInner.querySelectorAll(':scope > .branch').forEach(childBranch=>{\n      const childNode=childBranch.querySelector(':scope > .nrow > .node');\n      const cr=childNode.getBoundingClientRect();\n      const x2=cr.left-treeRect.left, y2=cr.top+cr.height\/2-treeRect.top;\n      const mx=(x1+x2)\/2;\n      d += `M${x1.toFixed(1)},${y1.toFixed(1)} C${mx.toFixed(1)},${y1.toFixed(1)} ${mx.toFixed(1)},${y2.toFixed(1)} ${x2.toFixed(1)},${y2.toFixed(1)} `;\n    });\n  });\n  svg.innerHTML = '<path d=\"'+d+'\" fill=\"none\" stroke=\"var(--line)\" stroke-width=\"2\" stroke-linecap=\"round\"\/>';\n}\nlet mmLinkRAF=null;\nfunction mmAnimateLinks(duration=360, centerNode=null){\n  if(mmLinkRAF) cancelAnimationFrame(mmLinkRAF);\n  const start=performance.now();\n  (function step(now){\n    mmDrawLinks();\n    if(centerNode) mmFollowCenter(centerNode);\n    mmLinkRAF = (now-start<duration) ? requestAnimationFrame(step) : null;\n  })(start);\n}\nlet mmZLv = 0;\nfunction mmZoom(d){\n  mmZLv = Math.max(-2, Math.min(4, mmZLv + d));\n  document.getElementById('tmmTree').style.fontSize = (100 + mmZLv*9) + '%';\n  setTimeout(mmDrawLinks, 30);\n}\nfunction mmToggleVI(){\n  const off = document.getElementById('tkg-mindmap-cbtp2').classList.toggle('noVI');\n  document.querySelectorAll('#tkg-mindmap-cbtp2 .mm-vi-btn').forEach(b=>{\n    b.classList.toggle('on', !off);\n    b.textContent = off ? '\u65e5\u672c\u8a9e' : 'VI\uff0bJP';\n  });\n  mmAnimateLinks();\n}\n\n\/* Danh s\u00e1ch ch\u01b0\u01a1ng \u2014 d\u00f9ng chung cho 2 n\u01a1i hi\u1ec3n th\u1ecb:\n   - #mmChapMenu: dropdown g\u1ecdn c\u1ee7a thanh topbar tr\u00ean di \u0111\u1ed9ng\n   - #mmSidebarChapList: danh s\u00e1ch \u0111\u1ea7y \u0111\u1ee7 lu\u00f4n hi\u1ec7n trong sidebar tr\u00ean desktop\n   Ch\u1ec9 kh\u00e1c nhau \u1edf style (CSS lo ph\u1ea7n \u0111\u00f3), n\u1ed9i dung n\u00fat do c\u00f9ng 1 h\u00e0m d\u1ef1ng ra. *\/\nfunction mmRenderChapterLists(){\n  const menu=document.getElementById('mmChapMenu');\n  menu.innerHTML='';\n  MM_CHAPTERS.forEach((ch,i)=>{\n    const b=document.createElement('button');\n    b.innerHTML = ch.tab + ' \u00b7 ' + ch.tabvi + '<small>' + (ch.j||'').slice(0,40) + '\u2026<\/small>';\n    b.className = (i===mmCurCh?'on':'');\n    b.onclick=(e)=>{e.stopPropagation();mmShowChapter(i);mmCloseChapMenu();};\n    menu.appendChild(b);\n  });\n\n  const sideList=document.getElementById('mmSidebarChapList');\n  sideList.innerHTML='';\n  MM_CHAPTERS.forEach((ch,i)=>{\n    const b=document.createElement('button');\n    b.className = 'mm-sb-chap-btn' + (i===mmCurCh?' on':'');\n    b.innerHTML = '<span>' + ch.tab + ' \u00b7 ' + ch.tabvi.split(' \u2014 ')[0] + '<\/span>'\n                + '<span class=\"mm-sb-chap-vi\">' + ch.tabvi + '<\/span>';\n    b.onclick=()=>mmShowChapter(i);\n    sideList.appendChild(b);\n  });\n\n  document.getElementById('mmChapTag').textContent = MM_CHAPTERS[mmCurCh].tab;\n  document.getElementById('mmChapSubTag').textContent = MM_CHAPTERS[mmCurCh].tabvi;\n}\nfunction mmToggleChapMenu(){\n  const open = document.getElementById('mmChapMenu').classList.toggle('open');\n  if(open){ document.getElementById('mmInfoPop').classList.remove('open'); }\n}\nfunction mmCloseChapMenu(){ document.getElementById('mmChapMenu').classList.remove('open'); }\nfunction mmToggleInfo(){\n  const open = document.getElementById('mmInfoPop').classList.toggle('open');\n  if(open){ mmCloseChapMenu(); }\n}\ndocument.addEventListener('click', (e)=>{\n  const gino = document.getElementById('tkg-mindmap-cbtp2');\n  if(!gino) return;\n  if(!e.target.closest('.chap-wrap')) { mmCloseChapMenu(); document.getElementById('mmInfoPop').classList.remove('open'); }\n});\nfunction mmShowChapter(i){\n  mmCurCh=i;\n  const t=document.getElementById('tmmTree');\n  const wrap=document.getElementById('tmmWrap');\n  t.style.paddingTop='0px';\n  t.innerHTML='';\n  t.appendChild(mmBuild(MM_CHAPTERS[i],0));\n  mmRenderChapterLists();\n  document.querySelectorAll('#tkg-mindmap-cbtp2 .mm-search').forEach(inp=>inp.value='');\n  mmExpandTo(2);\n  if(wrap) wrap.scrollLeft = 0; \/\/ v\u1ec1 l\u1ea1i m\u00e9p tr\u00e1i, b\u1ecf pan ngang c\u00f2n s\u00f3t t\u1eeb ch\u01b0\u01a1ng tr\u01b0\u1edbc\n  \/\/ \u0110\u1eb7t node g\u1ed1c c\u1ee7a ch\u01b0\u01a1ng m\u1edbi n\u1eb1m gi\u1eefa m\u00e0n h\u00ecnh theo chi\u1ec1u d\u1ecdc (g\u1ea7n m\u00e9p tr\u00e1i theo chi\u1ec1u\n  \/\/ ngang), gi\u1ed1ng c\u00e1ch NotebookLM lu\u00f4n \u0111\u01b0a ch\u1ee7 \u0111\u1ec1 \u0111ang ch\u1ecdn v\u00e0o gi\u1eefa khung nh\u00ecn. V\u00ec node\n  \/\/ g\u1ed1c l\u00e0 ph\u1ea7n t\u1eed \u0110\u1ea6U TI\u00caN c\u1ee7a #tmmTree n\u00ean m\u1eb7c \u0111\u1ecbnh kh\u00f4ng c\u00f3 ch\u1ed7 ph\u00eda tr\u00ean \u0111\u1ec3 cu\u1ed9n l\u00ean \u2014\n  \/\/ ph\u1ea3i ch\u1ee7 \u0111\u1ed9ng ch\u1eeba th\u00eam padding-top b\u1eb1ng \u0111\u00fang kho\u1ea3ng c\u00f2n thi\u1ebfu r\u1ed3i m\u1edbi cu\u1ed9n t\u1edbi.\n  requestAnimationFrame(()=>requestAnimationFrame(()=>{\n    const rootNode = t.querySelector(':scope > .branch > .nrow > .node');\n    if(!rootNode){ window.scrollTo({top:0,left:0,behavior:'smooth'}); return; }\n    const topbar = document.querySelector('#tkg-mindmap-cbtp2 header.mm-topbar');\n    const topbarH = topbar ? topbar.getBoundingClientRect().height : 0;\n    const rootH = rootNode.getBoundingClientRect().height;\n    const availableH = window.innerHeight - topbarH;\n    const padTop = Math.max(24, Math.round(availableH\/2 - rootH\/2));\n    t.style.paddingTop = padTop + 'px';\n    mmDrawLinks();\n    requestAnimationFrame(()=>{\n      const r = rootNode.getBoundingClientRect();\n      const targetTop = window.scrollY + r.top + r.height\/2 - window.innerHeight\/2;\n      window.scrollTo({top: Math.max(targetTop,0), left:0, behavior:'smooth'});\n    });\n  }));\n}\n\n\/* \u00d4 t\u00ecm ki\u1ebfm c\u00f3 2 b\u1ea3n (topbar mobile + sidebar desktop) \u2014 ch\u1ec9 1 b\u1ea3n hi\u1ec7n ra tu\u1ef3 m\u00e0n\n   h\u00ecnh, nh\u01b0ng c\u00f9ng ch\u1ea1y 1 logic l\u1ecdc v\u00e0 \u0111\u1ed3ng b\u1ed9 gi\u00e1 tr\u1ecb gi\u1eefa 2 \u00f4 \u0111\u1ec3 kh\u00f4ng b\u1ecb l\u1ec7ch khi\n   ng\u01b0\u1eddi d\u00f9ng \u0111\u1ed5i c\u1ee1 m\u00e0n h\u00ecnh gi\u1eefa ch\u1eebng. *\/\nfunction mmRunSearch(s){\n  document.querySelectorAll('#tkg-mindmap-cbtp2 .node').forEach(n=>{n.classList.remove('hit');n.classList.remove('dim');});\n  if(!s){ mmExpandTo(2); return; }\n  let n=0;\n  const tree=document.getElementById('tmmTree');\n  tree.classList.add('mm-no-anim');\n  document.querySelectorAll('#tkg-mindmap-cbtp2 .branch').forEach(b=>{\n    const nd=b.querySelector(':scope > .nrow > .node');\n    const txt=nd.innerText.toLowerCase();\n    if(txt.includes(s)){\n      nd.classList.add('hit'); n++;\n      let p=b.parentElement;\n      while(p){\n        if(p.classList && p.classList.contains('branch')) mmSetOpen(p, true);\n        p=p.parentElement;\n      }\n      mmSetOpen(b, true);\n    }\n  });\n  void tree.offsetHeight;\n  tree.classList.remove('mm-no-anim');\n  mmDrawLinks();\n  if(n){\n    const f=document.querySelector('#tkg-mindmap-cbtp2 .node.hit');\n    if(f) f.scrollIntoView({behavior:'smooth',block:'center',inline:'center'});\n  }\n}\ndocument.querySelectorAll('#tkg-mindmap-cbtp2 .mm-search').forEach(inp=>{\n  inp.addEventListener('input',()=>{\n    document.querySelectorAll('#tkg-mindmap-cbtp2 .mm-search').forEach(o=>{ if(o!==inp) o.value=inp.value; });\n    mmRunSearch(inp.value.trim().toLowerCase());\n  });\n});\n\nif(!window.MM_CHAPTERS){\n  document.getElementById('tmmTree').innerHTML = '<div class=\"node\" style=\"max-width:520px\">'\n    + '<div class=\"jp\">Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u s\u01a1 \u0111\u1ed3 t\u01b0 duy.<\/div>'\n    + '<div class=\"vi\">Vui l\u00f2ng t\u1ea3i l\u1ea1i trang. N\u1ebfu v\u1eabn l\u1ed7i, h\u00e3y b\u00e1o qu\u1ea3n tr\u1ecb vi\u00ean ki\u1ec3m tra file cbtp-gino2-mindmap-data.js.<\/div><\/div>';\n  throw new Error('MM_CHAPTERS missing: cbtp-gino2-mindmap-data.js ch\u01b0a \u0111\u01b0\u1ee3c t\u1ea3i');\n}\nmmShowChapter(0);\nwindow.addEventListener('resize', mmDrawLinks);\nsetTimeout(mmDrawLinks, 60);\n\n\/* ---------- K\u00e9o chu\u1ed9t \u0111\u1ec3 di chuy\u1ec3n c\u00e2y s\u01a1 \u0111\u1ed3 (gi\u1ed1ng NotebookLM) ----------\n   B\u1ea5m gi\u1eef chu\u1ed9t l\u00ean v\u00f9ng n\u1ec1n tr\u1ed1ng c\u1ee7a #tmmWrap r\u1ed3i k\u00e9o l\u00ean\/xu\u1ed1ng\/tr\u00e1i\/ph\u1ea3i \u0111\u1ec3\n   tr\u01b0\u1ee3t to\u00e0n b\u1ed9 c\u00e2y; b\u1ecf qua n\u1ebfu b\u1ea5m v\u00e0o node\/n\u00fat \u0111\u1ec3 kh\u00f4ng ph\u00e1 thao t\u00e1c m\u1edf\/\u0111\u00f3ng. *\/\n(function(){\n  const wrap = document.getElementById('tmmWrap');\n  if(!wrap) return;\n  let dragging=false, moved=false, startX=0, startY=0, startScrollLeft=0, startScrollTop=0;\n  wrap.addEventListener('mousedown', (e)=>{\n    if(e.target.closest('.node, button, input, a, .icon-btn')) return;\n    dragging=true; moved=false;\n    startX=e.pageX; startY=e.pageY;\n    startScrollLeft=wrap.scrollLeft;\n    startScrollTop=window.scrollY || document.documentElement.scrollTop;\n    wrap.classList.add('mm-dragging');\n  });\n  window.addEventListener('mousemove', (e)=>{\n    if(!dragging) return;\n    const dx=e.pageX-startX, dy=e.pageY-startY;\n    if(Math.abs(dx)>3 || Math.abs(dy)>3) moved=true;\n    wrap.scrollLeft = startScrollLeft - dx;\n    window.scrollTo(window.scrollX, startScrollTop - dy);\n    e.preventDefault();\n  });\n  window.addEventListener('mouseup', ()=>{\n    dragging=false;\n    wrap.classList.remove('mm-dragging');\n  });\n  window.addEventListener('mouseleave', ()=>{\n    dragging=false;\n    wrap.classList.remove('mm-dragging');\n  });\n  \/\/ Ch\u1eb7n click \"ma\" ngay sau khi v\u1eeba k\u00e9o chu\u1ed9t (tr\u00e1nh v\u00f4 t\u00ecnh m\u1edf\/\u0111\u00f3ng node).\n  wrap.addEventListener('click', (e)=>{\n    if(moved){ e.stopPropagation(); e.preventDefault(); moved=false; }\n  }, true);\n})();\n<\/script>\n<!-- TMY-FURIGANA:start (phi\u00ean \u00e2m trong ngo\u1eb7c -> furigana tr\u00ean \u0111\u1ec9nh ch\u1eef, nh\u01b0 app; s\u1eeda b\u1eb1ng c\u00e1ch ch\u1ea1y l\u1ea1i script, \u0111\u1eebng s\u1eeda tay) -->\n<style>ruby.tmy-fg rt { font-size: 0.55em; font-weight: normal; }<\/style>\n<script>\n(function () {\n  var KJ = \"\u3400-\u9fff\u3005\u30f6\", HI = \"\u3041-\u309f\";\n  var PAREN = new RegExp(\"([\" + KJ + HI + \"]+)[(\uff08]([\" + HI + \"\u30fc]+)[)\uff09]\", \"g\");\n  var ISK = new RegExp(\"[\" + KJ + \"]\");\n  var PARTS = new RegExp(\"[\" + KJ + \"]+|[\" + HI + \"]+\", \"g\");\n  var GRAM = \/\u3055\u305b|\u3044\u305f\u3060|\u307e\u3059$|\u307e\u305b\u3093$|\u307e\u3057\u305f$|\u304f\u3060\u3055\u3044$|\u3057\u308d$\/;\n  var SKIP = { SCRIPT: 1, STYLE: 1, TEXTAREA: 1, INPUT: 1, SELECT: 1, OPTION: 1, RUBY: 1, RT: 1, RP: 1, CODE: 1, PRE: 1, NOSCRIPT: 1 };\n  \/* gh\u00e9p phi\u00ean \u00e2m v\u1edbi ch\u1eef (H\u00e1n + kana \u0111i k\u00e8m): m\u1ed7i \u0111o\u1ea1n ch\u1eef H\u00e1n 1-3 kana m\u1ed7i ch\u1eef (+2), kana \u0111i k\u00e8m ph\u1ea3i tr\u00f9ng *\/\n  function align(base, reading) {\n    var parts = base.match(PARTS);\n    if (!parts) return null;\n    if (!ISK.test(parts[0].charAt(0))) return null;\n    var rx = \"\";\n    parts.forEach(function (p) { rx += ISK.test(p.charAt(0)) ? \"(.+?)\" : p; });\n    var m = new RegExp(\"^\" + rx + \"$\").exec(reading);\n    if (!m) return null;\n    var out = [], g = 0, ok = true;\n    parts.forEach(function (p) {\n      if (ISK.test(p.charAt(0))) {\n        g++;\n        var r = m[g];\n        if (r.length < p.length) ok = false;\n        if (r.length > 3 * p.length + 2) ok = false;\n        out.push([p, r]);\n      } else out.push([p, null]);\n    });\n    return ok ? out : null;\n  }\n  \/* m\u1ed9t \u0111o\u1ea1n ch\u1eef -> danh s\u00e1ch [ch\u1eef, phi\u00ean \u00e2m ho\u1eb7c null]; null n\u1ebfu kh\u00f4ng c\u00f3 g\u00ec \u0111\u1ed5i *\/\n  function convert(t) {\n    var segs = [], last = 0, changed = false, m;\n    PAREN.lastIndex = 0;\n    while ((m = PAREN.exec(t)) !== null) {\n      var cand = m[1], reading = m[2], done = null;\n      if (!GRAM.test(reading)) {\n        for (var i = 0; i < cand.length; i++) {\n          if (!ISK.test(cand.charAt(i))) continue;\n          if (i > 0) { if (ISK.test(cand.charAt(i - 1))) continue; }\n          var al = align(cand.slice(i), reading);\n          if (al) { done = [[cand.slice(0, i), null]].concat(al); break; }\n        }\n      }\n      segs.push([t.slice(last, m.index), null]);\n      if (done) { segs = segs.concat(done); changed = true; } else segs.push([m[0], null]);\n      last = m.index + m[0].length;\n    }\n    if (!changed) return null;\n    segs.push([t.slice(last), null]);\n    return segs;\n  }\n  function fix(node) {\n    var t = node.nodeValue;\n    if (t.indexOf(\"(\") < 0) { if (t.indexOf(\"\uff08\") < 0) return; }\n    var segs = convert(t);\n    if (!segs) return;\n    var frag = document.createDocumentFragment();\n    segs.forEach(function (s) {\n      if (!s[0]) return;\n      if (s[1] === null) { frag.appendChild(document.createTextNode(s[0])); return; }\n      var rb = document.createElement(\"ruby\"), rt = document.createElement(\"rt\");\n      rb.className = \"tmy-fg\";\n      rb.appendChild(document.createTextNode(s[0]));\n      rt.textContent = s[1];\n      rb.appendChild(rt);\n      frag.appendChild(rb);\n    });\n    node.parentNode.replaceChild(frag, node);\n  }\n  function walk(n) {\n    if (n.nodeType === 3) { if (n.parentNode) { if (!SKIP[n.parentNode.nodeName]) fix(n); } return; }\n    if (n.nodeType !== 1) return;\n    if (SKIP[n.nodeName]) return;\n    if (n.isContentEditable) return;\n    if (n.closest) { if (n.closest(\"ruby\")) return; }\n    Array.prototype.slice.call(n.childNodes).forEach(walk);\n  }\n  function start() {\n    walk(document.body);\n    new MutationObserver(function (list) {\n      list.forEach(function (mu) {\n        Array.prototype.forEach.call(mu.addedNodes, function (n) {\n          if (n.parentNode) { if (!(n.parentNode.closest ? n.parentNode.closest(\"ruby\") : null)) walk(n); }\n        });\n      });\n    }).observe(document.body, { childList: true, subtree: true });\n  }\n  window.tmyFurigana = convert;\n  if (document.body) start(); else document.addEventListener(\"DOMContentLoaded\", start);\n})();\n<\/script>\n<!-- TMY-FURIGANA:end -->\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>S\u01a1 \u0111\u1ed3 t\u01b0 duy CBTP Gino2 \uff5c \u7dcf\u307e\u3068\u3081\u30de\u30a4\u30f3\u30c9\u30de\u30c3\u30d7 \ud83d\udd12 B\u1ea1n ch\u01b0a \u0111\u0103ng nh\u1eadp Vui l\u00f2ng \u0111\u0103ng nh\u1eadp v\u00e0o t\u00e0i kho\u1ea3n \u0111\u1ec3 xem s\u01a1 \u0111\u1ed3 t\u01b0 duy. \u0110\u0103ng nh\u1eadp 6 ch\u01b0\u01a1ng \u7b2c\uff11\u7ae0 N\u1ec1n t\u1ea3ng Tr\u01b0\u1edfng b\u1ed9 ph\u1eadn \u25be M\u1edf t\u1ea5t c\u1ea3 Thu g\u1ecdn VI\uff0bJP A\u2212 A\uff0b \u24d8 S\u01a1 \u0111\u1ed3 t\u01b0 duy CBTP Gino2 \u7dcf\u307e\u3068\u3081\u30de\u30a4\u30f3\u30c9\u30de\u30c3\u30d7 \u00b7 Tr\u1ecdn [&#8230;]\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-8510","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/pages\/8510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/comments?post=8510"}],"version-history":[{"count":9,"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/pages\/8510\/revisions"}],"predecessor-version":[{"id":8664,"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/pages\/8510\/revisions\/8664"}],"wp:attachment":[{"href":"https:\/\/tokuteigino.vn\/vi\/wp-json\/wp\/v2\/media?parent=8510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}