{"id":3847,"date":"2026-06-14T18:34:09","date_gmt":"2026-06-14T18:34:09","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-ket-3-test-4-rw\/"},"modified":"2026-07-05T02:44:13","modified_gmt":"2026-07-05T02:44:13","slug":"cambridge-ket-3-test-4-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-ket-3-test-4-rw\/","title":{"rendered":"KET 3 \u2014 Test 4 Reading &#038; Writing"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400%3B500%3B600%3B700%3B800&family=Fraunces:opsz,wght@9..144,700&display=swap');\n\n\/* escape WP wrapper *\/\n.entry-content,.wp-block-post-content,.is-layout-constrained{max-width:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}\n.wp-block-post-title{display:none !important;}\n\n:root{\n  --accent-1:#F97316;\n  --accent-2:#F43F5E;\n  --gold:#F9C74F;\n  --green:#10B981;\n  --red:#EF4444;\n  --light-1:#FFF7ED;\n  --light-2:#FFFBF5;\n  --white:#FFFFFF;\n  --text:#0F172A;\n  --muted:#475569;\n  --subtle:#64748B;\n  --border:#E2E8F0;\n  --dark-1:#1B0F02;\n  --dark-2:#2D1A06;\n  --r-10:10px; --r-16:16px; --r-22:22px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);\n  --sh-lg:0 12px 40px rgba(0,0,0,.12);\n}\n*{margin:0;padding:0;box-sizing:border-box}\nhtml{scroll-behavior:smooth}\nbody{\n  font-family:'Plus Jakarta Sans',system-ui,sans-serif !important;\n  color:var(--text);\n  background:var(--light-2);\n  -webkit-font-smoothing:antialiased;\n  overflow-x:hidden;\n}\n.serif{font-family:'Fraunces',Georgia,serif !important;font-weight:700;letter-spacing:-.01em}\n.wrap{max-width:1080px;margin:0 auto;padding:0 24px}\na{color:inherit;text-decoration:none}\nbutton{font-family:inherit !important;cursor:pointer;border:none;background:none}\n\n\/* HEADER (same pattern as cambridge index) *\/\n.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .28s ease,box-shadow .28s ease;border-bottom:1px solid transparent;}\n.header.solid{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(15,23,42,.02);}\n.header-inner{display:flex;align-items:center;gap:28px;height:72px;max-width:1200px;margin:0 auto;padding:0 24px}\n.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}\n.brand img{width:40px;height:40px;border-radius:11px;object-fit:cover;box-shadow:var(--sh-card)}\n.brand-name{font-weight:800;font-size:18px;letter-spacing:-.02em;color:#fff;transition:color .28s ease}\n.header.solid .brand-name{color:var(--text)}\n.nav{display:flex;align-items:center;gap:4px;margin-left:8px}\n.nav a{position:relative;padding:9px 13px;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.82);border-radius:var(--r-10);transition:color .16s ease,background .16s ease;}\n.nav a:hover{color:#fff;background:rgba(255,255,255,.08)}\n.header.solid .nav a{color:var(--muted)}\n.header.solid .nav a:hover{color:var(--text);background:var(--light-1)}\n.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}\n.btn-back{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;font-weight:700;font-size:14px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);transition:background .16s ease}\n.btn-back:hover{background:rgba(255,255,255,.22)}\n.header.solid .btn-back{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.hamburger{display:none;width:40px;height:40px;border-radius:50%;color:#fff;align-items:center;justify-content:center}\n.header.solid .hamburger{color:var(--text)}\n\n\/* HERO *\/\n.hero{\n  position:relative;min-height:380px;padding:120px 0 60px;\n  background:linear-gradient(135deg,#FB923C 0%,#F43F5E 55%,#7C2D12 100%);\n  color:#fff;overflow:hidden;\n}\n.hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.10) 0%,transparent 50%);pointer-events:none}\n.hero .wrap{position:relative;z-index:1}\n.kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;opacity:.92;margin-bottom:14px}\n.hero h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin-bottom:14px}\n.hero h1 span{font-style:italic;color:var(--gold)}\n.hero p.sub{font-size:17px;line-height:1.6;max-width:680px;opacity:.95;margin-bottom:22px}\n.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}\n.meta-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.24);font-size:13px;font-weight:600}\n.meta-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}\n.cta-row{display:flex;gap:12px;flex-wrap:wrap}\n.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:#fff;color:var(--text);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform .16s ease}\n.btn-primary:hover{transform:translateY(-2px)}\n.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:15px;border:1px solid rgba(255,255,255,.32);transition:background .16s ease}\n.btn-ghost:hover{background:rgba(255,255,255,.22)}\n\n\/* SCORE BAR *\/\n.score-bar{\n  position:sticky;top:72px;z-index:50;\n  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);\n  border-bottom:1px solid var(--border);\n  padding:14px 0;\n}\n.sb-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.sb-prog{flex:1;min-width:200px}\n.sb-prog-bar{height:8px;background:var(--light-1);border-radius:999px;overflow:hidden}\n.sb-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));border-radius:999px;transition:width .3s ease;width:0}\n.sb-prog-label{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}\n.sb-score{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--text)}\n.sb-score b{font-size:18px;color:var(--accent-1)}\n.btn-submit{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:14px;box-shadow:0 6px 18px rgba(249,115,22,.32);transition:transform .15s ease,opacity .15s ease}\n.btn-submit:hover{transform:translateY(-1px)}\n.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}\n.btn-reset{padding:10px 16px;border-radius:999px;background:#fff;color:var(--muted);font-weight:600;font-size:13px;border:1px solid var(--border);transition:background .15s ease}\n.btn-reset:hover{background:var(--light-1);color:var(--text)}\n\n\/* PARTS *\/\n.part-section{padding:48px 0;border-bottom:1px solid var(--border)}\n.part-section:nth-of-type(even){background:#fff}\n.part-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px}\n.part-num{\n  flex-shrink:0;width:60px;height:60px;border-radius:18px;\n  background:linear-gradient(135deg,var(--accent-1),var(--accent-2));\n  color:#fff;display:grid;place-items:center;\n  font-family:'Fraunces',serif !important;font-weight:700;font-size:26px;\n  box-shadow:0 8px 22px rgba(249,115,22,.3);\n}\n.part-head-text h2{font-size:26px;line-height:1.15;margin-bottom:6px}\n.part-head-text .qrange{display:inline-block;font-size:12.5px;font-weight:700;color:var(--accent-1);background:var(--light-1);padding:4px 10px;border-radius:999px;letter-spacing:.04em;margin-bottom:8px}\n.part-head-text p{color:var(--muted);font-size:15px;line-height:1.55;max-width:740px}\n\n\/* PART 1 &#8212; notice match *\/\n.notices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:20px 0 28px}\n.notice{\n  background:#fff;border:2px solid var(--border);border-radius:14px;padding:18px 14px;text-align:center;\n  font-weight:700;letter-spacing:.02em;color:var(--text);min-height:88px;display:grid;place-items:center;\n  font-size:14.5px;line-height:1.35;\n  box-shadow:0 1px 3px rgba(0,0,0,.04);\n}\n.notice-letter{position:absolute;top:6px;left:8px;font-size:11px;font-weight:800;color:var(--accent-1);background:var(--light-1);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;}\n.notice{position:relative}\n\n\/* questions list *\/\n.q-list{display:flex;flex-direction:column;gap:14px;margin-top:8px}\n.q-item{\n  background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;\n  display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease;\n}\n.q-item.correct{border-color:var(--green);box-shadow:0 0 0 3px rgba(16,185,129,.12)}\n.q-item.wrong{border-color:var(--red);box-shadow:0 0 0 3px rgba(239,68,68,.12)}\n.q-num{font-weight:800;color:var(--accent-1);font-size:14px;min-width:30px}\n.q-text{flex:1;font-size:15.5px;line-height:1.55;color:var(--text);display:flex;gap:10px;align-items:flex-start}\n.q-text b.qn{color:var(--accent-1);font-weight:800}\n.q-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}\n.opt{\n  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;\n  background:#F8FAFF;border:1.5px solid var(--border);font-weight:600;font-size:14px;color:var(--text);\n  cursor:pointer;transition:all .15s ease;user-select:none;\n}\n.opt:hover{background:var(--light-1);border-color:var(--accent-1)}\n.opt input{display:none}\n.opt .opt-letter{font-weight:800;color:var(--accent-1);background:#fff;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12.5px;border:1px solid var(--border)}\n.opt.selected{background:linear-gradient(100deg,rgba(249,115,22,.12),rgba(244,63,94,.12));border-color:var(--accent-1)}\n.opt.selected .opt-letter{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.opt.correct-opt{background:rgba(16,185,129,.12) !important;border-color:var(--green) !important}\n.opt.correct-opt .opt-letter{background:var(--green) !important;color:#fff !important;border-color:transparent !important}\n.opt.wrong-opt{background:rgba(239,68,68,.10) !important;border-color:var(--red) !important}\n.opt.wrong-opt .opt-letter{background:var(--red) !important;color:#fff !important;border-color:transparent !important}\n.feedback{font-size:13px;font-weight:600;display:none;padding:8px 12px;border-radius:8px;margin-top:4px}\n.q-item.answered .feedback{display:block}\n.q-item.correct .feedback{background:rgba(16,185,129,.12);color:#065F46}\n.q-item.wrong .feedback{background:rgba(239,68,68,.10);color:#991B1B}\n\n\/* PART 2 \/ cloze with input *\/\n.input-blank{\n  display:inline-block;min-width:90px;border:none;border-bottom:2px dashed var(--accent-1);\n  background:transparent;font-family:inherit !important;font-size:15.5px;color:var(--text);font-weight:600;\n  padding:2px 6px;margin:0 4px;text-align:center;outline:none;\n}\n.input-blank:focus{border-bottom-style:solid;background:var(--light-1)}\n.input-blank.correct{border-bottom-color:var(--green);color:#065F46;background:rgba(16,185,129,.10)}\n.input-blank.wrong{border-bottom-color:var(--red);color:#991B1B;background:rgba(239,68,68,.08)}\n\n\/* PART 4 &#8212; passage *\/\n.passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;\n  padding:24px 26px;margin:8px 0 20px;\n  font-size:15.5px;line-height:1.7;color:var(--text);\n  box-shadow:var(--sh-card);\n  position:relative;\n}\n.passage h3{font-family:'Fraunces',serif !important;font-size:22px;text-align:center;margin-bottom:14px;letter-spacing:.02em;color:var(--accent-2)}\n.passage p{margin-bottom:10px}\n\n\/* PART 5 &#8212; cloze passage *\/\n.cloze-passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px 26px;\n  font-size:16px;line-height:1.8;color:var(--text);box-shadow:var(--sh-card);margin-bottom:24px;\n}\n.cloze-passage h3{font-family:'Fraunces',serif !important;font-size:24px;text-align:center;color:var(--accent-2);margin-bottom:14px}\n\n\/* PART 6 &#8212; single word with first letter *\/\n.word-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}\n.first-letter{font-weight:700;color:var(--accent-1);font-size:18px;font-family:'Fraunces',serif}\n.dashes{color:var(--muted);letter-spacing:6px;font-weight:600}\n\n\/* PART 8 &#8212; form *\/\n.form-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px;max-width:560px}\n.form-card h4{font-family:'Fraunces',serif !important;font-size:20px;text-align:center;color:var(--accent-2);margin-bottom:6px;border-bottom:2px solid var(--accent-1);padding-bottom:8px;display:inline-block;width:100%}\n.form-row{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}\n.form-row label{flex:0 0 200px;font-weight:600;color:var(--text);font-size:14.5px}\n.form-row .input-blank{flex:1;min-width:200px;text-align:left;font-size:14.5px}\n\n\/* PART 9 &#8212; writing *\/\n.writing-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px}\n.prompt-box{background:var(--light-1);border-left:4px solid var(--accent-1);padding:14px 18px;border-radius:0 12px 12px 0;margin-bottom:18px;font-size:15px;line-height:1.6}\n.prompt-box ul{margin:10px 0 4px 22px}\n.prompt-box li{margin-bottom:4px}\n.writing-area{width:100%;min-height:160px;padding:14px;font-family:inherit !important;font-size:15px;line-height:1.55;border:2px solid var(--border);border-radius:12px;background:#FAFBFC;color:var(--text);outline:none;resize:vertical;transition:border-color .2s ease}\n.writing-area:focus{border-color:var(--accent-1);background:#fff}\n.wc-counter{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--muted);font-weight:600}\n.wc-counter.ok{color:var(--green)}\n.wc-counter.over{color:var(--red)}\n.sample-toggle{margin-top:14px;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:13.5px;border:none;cursor:pointer}\n.sample-box{display:none;margin-top:14px;padding:14px 18px;background:#FEF3C7;border-left:4px solid var(--gold);border-radius:0 12px 12px 0;font-size:14.5px;line-height:1.6}\n.sample-box.show{display:block}\n.sample-box h5{font-family:'Fraunces',serif !important;font-size:16px;margin-bottom:8px;color:#92400E}\n\n\/* SHOW ANSWER PER-Q BUTTONS *\/\n.show-ans-btn{\n  display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:8px;\n  background:rgba(249,115,22,.10);color:var(--accent-1);font-weight:700;font-size:12px;\n  border:1px solid rgba(249,115,22,.30);cursor:pointer;transition:all .15s ease;\n  font-family:inherit !important;align-self:flex-start;margin-top:4px;letter-spacing:.02em;\n}\n.show-ans-btn:hover{background:rgba(249,115,22,.18);border-color:var(--accent-1)}\n.show-ans-btn[disabled]{opacity:.45;cursor:not-allowed}\n.show-ans-btn .emoji{width:14px;height:14px}\n.show-ans-btn-inline{\n  display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;\n  background:rgba(249,115,22,.10);color:var(--accent-1);font-weight:700;font-size:11.5px;\n  border:1px solid rgba(249,115,22,.28);cursor:pointer;font-family:inherit !important;\n  margin-left:4px;vertical-align:middle;transition:all .15s ease;\n}\n.show-ans-btn-inline:hover{background:rgba(249,115,22,.18)}\n.show-ans-btn-inline[disabled]{opacity:.45;cursor:not-allowed}\n\n\/* RESULTS BANNER *\/\n.results-banner{\n  display:none;margin:32px auto;padding:30px;border-radius:22px;\n  background:linear-gradient(135deg,#FB923C,#F43F5E);color:#fff;text-align:center;max-width:720px;\n  box-shadow:0 16px 50px rgba(249,115,22,.3);\n}\n.results-banner.show{display:block}\n.results-banner h3{font-size:30px;font-family:'Fraunces',serif !important;margin-bottom:10px}\n.results-banner .score-big{font-size:64px;font-weight:800;line-height:1;margin:14px 0;font-family:'Fraunces',serif}\n.results-banner p{opacity:.95;font-size:15px}\n\n\/* FOOTER *\/\n.footer{background:var(--dark-1);color:#9CA3AF;padding:36px 0;text-align:center;font-size:13.5px}\n.footer a{color:var(--gold);font-weight:600}\n\n\/* MOBILE *\/\n@media (max-width:820px){\n  .nav{display:none}\n  .hamburger{display:flex}\n  .hero{padding:110px 0 50px}\n  .part-head{flex-direction:column;gap:12px}\n  .part-num{width:50px;height:50px;font-size:22px}\n  .notices-grid{grid-template-columns:repeat(2,1fr)}\n  .form-row label{flex:1 1 100%}\n  .form-row .input-blank{width:100%}\n  .sb-inner{gap:10px}\n  .sb-prog{order:3;flex:1 1 100%}\n}\n\n\/* mobile drawer *\/\n.drawer{position:fixed;inset:0;background:rgba(15,23,42,.65);z-index:200;display:none;align-items:flex-start;justify-content:flex-end}\n.drawer.open{display:flex}\n.drawer-panel{width:280px;background:#fff;height:100%;padding:24px;display:flex;flex-direction:column;gap:8px}\n.drawer-panel a{padding:12px 14px;border-radius:10px;font-weight:600;color:var(--text)}\n.drawer-panel a:hover{background:var(--light-1)}\n.drawer-close{align-self:flex-end;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}\n<\/style>\n\n<!-- HEADER -->\n<header class=\"header\" id=\"hdr\">\n  <div class=\"header-inner\">\n    <a href=\"https:\/\/allenglish4u.com\" class=\"brand\">\n      <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/04\/Transparent-background-MacBook-Pro-cua-Hang.png\" alt=\"AE4U\">\n      <span class=\"brand-name\">All English 4U<\/span>\n    <\/a>\n    <nav class=\"nav\">\n      <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"active\">Cambridge<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n      <\/nav>\n    <div class=\"header-right\">\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-back\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M19 12H5M11 18l-6-6 6-6\"\/><\/svg>\n        Back\n      <\/a>\n      <button class=\"hamburger\" id=\"hamb\" aria-label=\"Menu\">\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M3 6h18M3 12h18M3 18h18\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<div class=\"drawer\" id=\"drawer\">\n  <div class=\"drawer-panel\">\n    <button class=\"drawer-close\" id=\"drawerClose\" aria-label=\"Close\">\n      <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg>\n    <\/button>\n    <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">Cambridge<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n    <\/div>\n<\/div>\n\n<!-- HERO -->\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"kicker\">Cambridge English &#183; Key (KET)<\/span>\n    <h1 class=\"serif\">KET 3 &#8212; Test 4<br><span>Reading &amp; Writing<\/span><\/h1>\n    <p class=\"sub\">Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn from instant feedback.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>1 hour 10 minutes<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>9 Parts<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>55 auto-graded<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>+ Writing prompt<\/span>\n    <\/div>\n    <div class=\"cta-row\">\n      <a href=\"#part1\" class=\"btn-primary\">\n        Start Test\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n      <\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-ghost\">All Cambridge Tests<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- SCORE BAR -->\n<div class=\"score-bar\" id=\"scoreBar\">\n  <div class=\"wrap sb-inner\">\n    <div class=\"sb-score\">Score <b><span id=\"scoreNow\">0<\/span>\/55<\/b><\/div>\n    <div class=\"sb-prog\">\n      <div class=\"sb-prog-bar\"><div class=\"sb-prog-fill\" id=\"progFill\"><\/div><\/div>\n      <div class=\"sb-prog-label\"><span id=\"answeredCount\">0<\/span> of 55 answered<\/div>\n    <\/div>\n    <button class=\"btn-submit\" id=\"submitBtn\">\n      <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n      Submit &amp; Grade\n    <\/button>\n    <button class=\"btn-reset\" id=\"resetBtn\">Reset<\/button>\n  <\/div>\n<\/div>\n\n<!-- ============== PART 1 ============== -->\n<section class=\"part-section\" id=\"part1\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">1<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 1&#8211;5<\/span>\n        <h2 class=\"serif\">Match the notice<\/h2>\n        <p>Which notice (A&#8211;H) says this (1&#8211;5)? For questions 1&#8211;5, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"notices-grid\">\n      <div class=\"notice\"><span class=\"notice-letter\">A<\/span><b>WANTED<\/b><br><sub style=\"font-size:11px;font-weight:600\">Spanish lessons<br>evenings or weekends<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">B<\/span>English Language<br>Student Library<br><sub style=\"font-size:10px;font-weight:600\">books, magazines and cassettes<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">C<\/span>College Film Night<br><sub style=\"font-size:11px;font-weight:600;font-style:italic\">&quot;TITANIC&quot;<\/sub><br><sub style=\"font-size:10px;font-weight:600\">College students &#163;2.50<br>Others &#163;3.00<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">D<\/span>The Biggest Video<br>Store in Town<br><sub style=\"font-size:11px;font-weight:600\">OPEN 24 HOURS<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">E<\/span><b>YORK MUSEUM<\/b><br><sub style=\"font-size:10px;font-weight:600\">Mon&#8211;Fri &#163;5 &#183; Sat&#8211;Sun &#163;2<br>Students free<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">F<\/span>Weekend Travel Card &#163;10<br><sub style=\"font-size:10px;font-weight:600\">Train or Bus<br>Central London only<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">G<\/span>Learn to play the guitar<br>in four weeks<br><sub style=\"font-size:11px;font-weight:600\">Video course &#8211; &#163;50<\/sub><\/div>\n      <div class=\"notice\" style=\"opacity:.55\"><span class=\"notice-letter\">H<\/span>Colour Photos<br><sub style=\"font-size:11px;font-weight:600\">Passport size only<br>4 for &#163;3<\/sub><br><sub style=\"font-size:10px;color:var(--muted);font-style:italic;font-weight:600\">(example)<\/sub><\/div>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part1List\">\n      <!-- Q1-5 -->\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 2 ============== -->\n<section class=\"part-section\" id=\"part2\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">2<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 6&#8211;10<\/span>\n        <h2 class=\"serif\">Jane&#39;s hobby<\/h2>\n        <p>Read the sentences (6&#8211;10) about Jane&#39;s hobby. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> Jane&#39;s <u>favourite<\/u> hobby is taking photographs. <b>(Answer: B)<\/b>\n    <\/div>\n    <div class=\"q-list\" id=\"part2List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3a ============== -->\n<section class=\"part-section\" id=\"part3a\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 11&#8211;15<\/span>\n        <h2 class=\"serif\">Complete the conversations<\/h2>\n        <p>Complete the five conversations. Choose the correct answer (A, B or C).<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> Where do you come from? &#8212; <b>A<\/b> New York.\n    <\/div>\n    <div class=\"q-list\" id=\"part3aList\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3b ============== -->\n<section class=\"part-section\" id=\"part3b\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 16&#8211;20<\/span>\n        <h2 class=\"serif\">In the tourist information office: student &amp; assistant<\/h2>\n        <p>Complete the conversation in a tourist information office. What does the student say to the assistant? For each blank, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;margin-bottom:18px;font-size:14.5px;line-height:1.7\">\n      <p><b>Assistant:<\/b> Hello, can I help you?<\/p>\n      <p><b>Student:<\/b> <span style=\"color:var(--accent-1);font-weight:700\">(Example: H)<\/span><\/p>\n      <p><b>Assistant:<\/b> Do you want the university tennis courts or the city ones?<\/p>\n      <p><b>Student:<\/b> <select class=\"q-select\" data-qid=\"16\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> Yes. Are you a university student? They can use the university ones.<\/p>\n      <p><b>Student:<\/b> <select class=\"q-select\" data-qid=\"17\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> So, you need the city tennis courts. They&#39;re in Park Street.<\/p>\n      <p><b>Student:<\/b> <select class=\"q-select\" data-qid=\"18\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> Well, if you walk, it&#39;s about 20 minutes.<\/p>\n      <p><b>Student:<\/b> <select class=\"q-select\" data-qid=\"19\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> That&#39;s right. Take the third road on the left, then it&#39;s on the right.<\/p>\n      <p><b>Student:<\/b> <select class=\"q-select\" data-qid=\"20\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> You&#39;re welcome.<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;font-size:14px;line-height:1.85\">\n      <b style=\"color:var(--accent-1);display:block;margin-bottom:6px\">Choices:<\/b>\n      <div><b>A<\/b> Thank you. I&#39;ll go there now.<\/div>\n      <div><b>B<\/b> I suppose so.<\/div>\n      <div><b>C<\/b> Oh, are there different ones? I didn&#39;t know.<\/div>\n      <div><b>D<\/b> That&#39;s fine. Is Park Street just after the High Street?<\/div>\n      <div><b>E<\/b> Can I use them?<\/div>\n      <div><b>F<\/b> Is that far from here?<\/div>\n      <div><b>G<\/b> Well, I&#39;m a student at a language school, not the university.<\/div>\n      <div style=\"opacity:.5\"><b>H<\/b> Yes, please. Where are the tennis courts? <i>(example)<\/i><\/div>\n    <\/div>\n\n    <div id=\"part3bFeedback\" style=\"margin-top:14px\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 4 ============== -->\n<section class=\"part-section\" id=\"part4\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">4<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 21&#8211;27<\/span>\n        <h2 class=\"serif\">John Pickering<\/h2>\n        <p>Read the article about a singer. Are sentences 21&#8211;27 <b>&#8216;Right&#8217; (A)<\/b> or <b>&#8216;Wrong&#8217; (B)<\/b>? If there is not enough information to answer &#8216;Right&#8217; or &#8216;Wrong&#8217;, choose <b>&#8216;Doesn&#8217;t say&#8217; (C)<\/b>.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"passage\">\n      <h3>JOHN PICKERING<\/h3>\n      <p>In a park in a small town in central England, John Pickering cuts the grass and waters the flowers. But all last week he was in Tokyo and millions of Japanese people watched the thirty-five-year-old gardener on television because John is the number one singer in Japan at the moment. John visited Japan a few months ago to sing in dance clubs in Osaka and Nagoya. A disc jockey heard his songs and played them on his radio show. Hundreds of young people phoned the radio and asked the disc jockey to play the songs once more.<\/p>\n      <p>John, who uses the name Jon Otis when he sings in Japan, is not going to stop working in the park in England. He does not know yet how much he will earn from his music. &#39;I must keep my job in the park,&#39; he says. &#39;I still have to pay my bills!&#39; The other gardeners do not know that he is famous in Japan. They&#39;ve never even heard him sing.<\/p>\n      <p>John&#39;s wife, Denise, a hospital worker, says, &#39;This will not change the way we live. I only know John Pickering, not Jon Otis!&#39;<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 18px;margin-bottom:18px;font-size:14px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> John Pickering usually works in England. &#8594; <b>A (Right)<\/b>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part4List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 5 ============== -->\n<section class=\"part-section\" id=\"part5\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">5<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 28&#8211;35<\/span>\n        <h2 class=\"serif\">Postcards &#8212; gap fill<\/h2>\n        <p>Read the article about postcards. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"cloze-passage\">\n      <h3>Postcards<\/h3>\n      <p>Today, people like to send postcards <u><b style=\"color:var(--accent-1)\">to<\/b><\/u> their friends and family. These postcards often <span data-q=\"28\" class=\"cloze-blank\">[28]<\/span> pictures of beaches, mountains or castles on them and you <span data-q=\"29\" class=\"cloze-blank\">[29]<\/span> write a message on the back. Many people send postcards <span data-q=\"30\" class=\"cloze-blank\">[30]<\/span> they are on holiday because postcards are cheap and the pictures on them are often <span data-q=\"31\" class=\"cloze-blank\">[31]<\/span> than people&#39;s own photos.<\/p>\n      <p>Somebody sent the first postcard <span data-q=\"32\" class=\"cloze-blank\">[32]<\/span> the end of the nineteenth century. It had a picture of a town by the sea on it. Later on, postcards had pictures showing something in the news that week, perhaps an accident <span data-q=\"33\" class=\"cloze-blank\">[33]<\/span> an important person&#39;s visit. People liked to <span data-q=\"34\" class=\"cloze-blank\">[34]<\/span> them because they did <span data-q=\"35\" class=\"cloze-blank\">[35]<\/span> have pictures in their newspapers then.<\/p>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part5List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 6 ============== -->\n<section class=\"part-section\" id=\"part6\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">6<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 36&#8211;40<\/span>\n        <h2 class=\"serif\">In a geography lesson &#8212; spell the word<\/h2>\n        <p>Read the descriptions (36&#8211;40) of some things you may learn about in a geography lesson. The first letter is given. Type the word. <b>Example (0):<\/b> This is a large group of trees. &#8594; <b>forest<\/b><\/p>\n      <\/div>\n    <\/div>\n    <div class=\"q-list\" id=\"part6List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 7 ============== -->\n<section class=\"part-section\" id=\"part7\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">7<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 41&#8211;50<\/span>\n        <h2 class=\"serif\">Complete this letter<\/h2>\n        <p>Read the letter from Soraya to her teacher, Mrs Brian. Type <b>ONE word<\/b> for each space (41&#8211;50). (Example: <i>am<\/i>)<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"max-width:580px;margin:0 auto\">\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:24px 26px;font-size:14.5px;line-height:1.95;font-family:&#39;Courier New&#39;,monospace\">\n        <p>Dear Mrs Brian,<\/p>\n        <p>I (Example: <u>am<\/u>) sorry but I can&#39;t come to your class <input class=\"input-blank\" data-q=\"41\" type=\"text\"> more because I have <input class=\"input-blank\" data-q=\"42\" type=\"text\"> return to my country. My sister is going to get married <input class=\"input-blank\" data-q=\"43\" type=\"text\"> month. I want to go shopping <input class=\"input-blank\" data-q=\"44\" type=\"text\"> her to choose a dress. My parents <input class=\"input-blank\" data-q=\"45\" type=\"text\"> going to make a big meal for the guests and there will <input class=\"input-blank\" data-q=\"46\" type=\"text\"> a lot of work in the kitchen.<\/p>\n        <p>I&#39;m sorry I <input class=\"input-blank\" data-q=\"47\" type=\"text\"> leave the English class. You are <input class=\"input-blank\" data-q=\"48\" type=\"text\"> very good teacher. Please <input class=\"input-blank\" data-q=\"49\" type=\"text\"> goodbye to the other students for <input class=\"input-blank\" data-q=\"50\" type=\"text\">.<\/p>\n        <p>Thanks again. Best wishes,<\/p>\n        <p><i>Soraya<\/i><\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 8 ============== -->\n<section class=\"part-section\" id=\"part8\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">8<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 51&#8211;55<\/span>\n        <h2 class=\"serif\">College Music Lessons &#8212; Application Form<\/h2>\n        <p>Read the note and the information about music lessons. Fill in the information on the application form (51&#8211;55).<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:18px\">\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:16px 18px;font-size:14px;line-height:1.6\">\n        <div style=\"border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px\"><b>Dear Mrs Bell,<\/b><\/div>\n        <p style=\"margin-bottom:8px\">I would like to join your piano class. I can play some classical music, but now I&#39;d like to learn to play modern music. I have English classes with Mr Smith every morning, but I am free in the afternoons.<\/p>\n        <p style=\"margin-bottom:0\"><i>Maria Gomez<\/i><\/p>\n      <\/div>\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:16px 18px;font-size:13.5px;line-height:1.6\">\n        <div style=\"text-align:center;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px\"><b>MUSIC LESSONS &#8212; Mrs Bell<\/b><\/div>\n        <table style=\"width:100%;border-collapse:collapse;font-size:13px\">\n          <tr><td style=\"padding:3px 6px\"><b>Wednesday<\/b><\/td><td style=\"padding:3px 6px\">10 a.m.<\/td><td style=\"padding:3px 6px\">Piano<\/td><\/tr>\n          <tr><td style=\"padding:3px 6px\"><\/td><td style=\"padding:3px 6px\">2 p.m.<\/td><td style=\"padding:3px 6px\">Guitar<\/td><\/tr>\n          <tr><td style=\"padding:3px 6px\"><b>Thursday<\/b><\/td><td style=\"padding:3px 6px\">9.30 am<\/td><td style=\"padding:3px 6px\">Guitar<\/td><\/tr>\n          <tr><td style=\"padding:3px 6px\"><\/td><td style=\"padding:3px 6px\">3.30 pm<\/td><td style=\"padding:3px 6px\">Piano<\/td><\/tr>\n        <\/table>\n      <\/div>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>COLLEGE MUSIC LESSONS &#8212; APPLICATION FORM<\/h4>\n      <div class=\"form-row\"><label>Name:<\/label><span style=\"font-weight:600;color:var(--accent-2);font-style:italic\">Maria Gomez<\/span><\/div>\n      <div class=\"form-row\"><label>Teacher:<\/label><input class=\"input-blank\" data-q=\"51\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Musical instrument:<\/label><input class=\"input-blank\" data-q=\"52\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>What kind of music do you want to learn?<\/label><input class=\"input-blank\" data-q=\"53\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Day of class:<\/label><input class=\"input-blank\" data-q=\"54\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Time of class:<\/label><input class=\"input-blank\" data-q=\"55\" type=\"text\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 9 &#8212; WRITING ============== -->\n<section class=\"part-section\" id=\"part9\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">9<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Question 56<\/span>\n        <h2 class=\"serif\">Writing &#8212; note to your friend<\/h2>\n        <p>This part is <b>not auto-graded<\/b>. Write your note, then click <i>Show Sample Answer<\/i> to see multiple examples.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"writing-card\">\n      <div class=\"prompt-box\">\n        <b>You are going to go walking with your English friend next Friday. Write a note to your friend.<\/b>\n        <div style=\"background:#fff;border:1px dashed var(--accent-1);border-radius:10px;padding:12px 14px;margin:12px 0;line-height:1.55\">\n          Say:\n          <ul style=\"margin:8px 0 0 0\">\n            <li><b>where<\/b> you can go walking<\/li>\n            <li><b>what<\/b> you are going to wear<\/li>\n            <li><b>what<\/b> your friend should bring<\/li>\n          <\/ul>\n        <\/div>\n        Write 25&#8211;35 words.\n      <\/div>\n      <textarea class=\"writing-area\" id=\"writingArea\" placeholder=\"Type your note here...\"><\/textarea>\n      <div class=\"wc-counter\" id=\"wcCounter\">0 words &#183; target 25&#8211;35<\/div>\n      <button class=\"sample-toggle\" id=\"sampleToggle\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n        Show Sample Answer\n      <\/button>\n      <div class=\"sample-box\" id=\"sampleBox\">\n        <h5 style=\"margin-bottom:14px\">Real Cambridge sample answers &#8212; with examiner marks<\/h5>\n\n        <div style=\"background:#fff;border-left:3px solid var(--green);padding:10px 14px;margin-bottom:12px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--green);font-size:12.5px;letter-spacing:.05em\">SAMPLE A &#8212; Mark 5\/5 (all three parts clearly communicated)<\/b>\n          <p style=\"margin-top:6px\">Hi Peter, Let&#39;s go walking in my town and go to the park. I will wearing my new skirt. bring a camera to the park, we will taking some photos.<\/p>\n          <p>Love &#8212; Nicole<\/p>\n        <\/div>\n\n        <div style=\"background:#fff;border-left:3px solid var(--accent-1);padding:10px 14px;margin-bottom:12px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--accent-1);font-size:12.5px;letter-spacing:.05em\">SAMPLE B &#8212; Mark 4\/5 (communicated, but some errors)<\/b>\n          <p style=\"margin-top:6px\">Hello Jane! I&#39;m very glade we can go walking next Friday in shopping centre, but I&#39;m not sure the time, I let to know soon. For me, I wear same dress and you should bring some money.<\/p>\n          <p>See you soon &#8212; Andrea<\/p>\n        <\/div>\n\n        <div style=\"background:#fff;border-left:3px solid var(--red);padding:10px 14px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--red);font-size:12.5px;letter-spacing:.05em\">SAMPLE C &#8212; Mark 3\/5 (one part not communicated)<\/b>\n          <p style=\"margin-top:6px\">Hi Jerry, How are you? Friday we can walking in country, near by my house. We going to take food for our lunch there so bring it too.<\/p>\n          <p>goodbye &#8212; Hugo<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- RESULTS BANNER -->\n<div class=\"wrap\">\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>Your KET 3 Test 4 &#8212; Reading &amp; Writing score<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/55<\/div>\n    <p id=\"resultsMsg\">Great effort! Scroll up to review your answers &#8212; correct ones are highlighted in green and wrong ones in red.<\/p>\n    <div style=\"margin-top:18px\"><button class=\"btn-primary\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\" style=\"background:#fff;color:var(--accent-2)\">Back to top<\/button><\/div>\n  <\/div>\n<\/div>\n\n<!-- FOOTER -->\n<footer class=\"footer\">\n  <div class=\"wrap\">\n    <p>&#169; 2026 All English 4U &#183; <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">All Cambridge Tests<\/a> &#183; <a href=\"https:\/\/allenglish4u.com\/contact\/\">Contact<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<script>eval(atob('CihmdW5jdGlvbigpewovLyA9PT09PSBIZWFkZXIgc2Nyb2xsID09PT09CnZhciBoZHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hkcicpOwp2YXIgc2V0U29saWQ9ZnVuY3Rpb24oKXtpZih3aW5kb3cuc2Nyb2xsWT40MCloZHIuY2xhc3NMaXN0LmFkZCgnc29saWQnKTtlbHNlIGhkci5jbGFzc0xpc3QucmVtb3ZlKCdzb2xpZCcpfTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsc2V0U29saWQse3Bhc3NpdmU6dHJ1ZX0pO3NldFNvbGlkKCk7CgovLyBkcmF3ZXIKdmFyIGhhbWI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hhbWInKSxkcmF3ZXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RyYXdlcicpLGRDbG9zZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJhd2VyQ2xvc2UnKTsKaWYoaGFtYiloYW1iLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2RyYXdlci5jbGFzc0xpc3QuYWRkKCdvcGVuJyl9KTsKaWYoZENsb3NlKWRDbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtkcmF3ZXIuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpfSk7CmlmKGRyYXdlcilkcmF3ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09ZHJhd2VyKWRyYXdlci5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyl9KTsKCi8vID09PT09IERBVEEgPT09PT0KLy8gTUNRIHF1ZXN0aW9uczogZWFjaCBlbnRyeSA9IHtuLCB0ZXh0LCBvcHRzOlt7bCx0fV0sIGFuc30KdmFyIFAxID0gWwogIHtuOjEsdGV4dDonWW91IGNhbiB1c2UgdGhpcyBmb3IgdHdvIGRheXMuJyxvcHRzOidBQkNERUZHJyxhbnM6J0YnfSwKICB7bjoyLHRleHQ6IlN0dWRlbnRzIGRvbid0IGhhdmUgdG8gcGF5IHRvIGdvIGhlcmUgYXQgd2Vla2VuZHMuIixvcHRzOidBQkNERUZHJyxhbnM6J0UnfSwKICB7bjozLHRleHQ6J1NvbWVvbmUgd291bGQgbGlrZSB0byBzcGVhayBhbm90aGVyIGxhbmd1YWdlLicsb3B0czonQUJDREVGRycsYW5zOidBJ30sCiAge246NCx0ZXh0OidJZiB5b3Ugc3R1ZHkgaGVyZSwgeW91IHdpbGwgcGF5IGxlc3MgZm9yIHRoaXMuJyxvcHRzOidBQkNERUZHJyxhbnM6J0MnfSwKICB7bjo1LHRleHQ6J1lvdSBjYW4gZmluZCB0aGluZ3MgdG8gbGlzdGVuIHRvIGhlcmUgaW4gdGhlIGNvbGxlZ2UuJyxvcHRzOidBQkNERUZHJyxhbnM6J0InfSwKXTsKdmFyIFAyID0gWwogIHtuOjYsdGV4dDonU2hlIGhvcGVzIHRvIF9fX19fIGEgcGhvdG9ncmFwaGVyIGZvciBhIG5ld3NwYXBlciBvbmUgZGF5Licsb3B0czpbWydBJywnd29yayddLFsnQicsJ2JlY29tZSddLFsnQycsJ2RvJ11dLGFuczonQid9LAogIHtuOjcsdGV4dDonU2hlIF9fX19fIGEgcGhvdG9ncmFwaHkgY2x1YiB0byBsZWFybiBtb3JlIGFib3V0IHVzaW5nIGEgY2FtZXJhLicsb3B0czpbWydBJywnbWFkZSddLFsnQicsJ3dlbnQnXSxbJ0MnLCdqb2luZWQnXV0sYW5zOidDJ30sCiAge246OCx0ZXh0OiJKYW5lIHNheXMgaXQncyBfX19fXyB0byB0YWtlIHBpY3R1cmVzIG9mIGNoaWxkcmVuIG9yIGFuaW1hbHMgYmVjYXVzZSB0aGV5IGFyZSBhbHdheXMgbW92aW5nLiIsb3B0czpbWydBJywnY2FyZWZ1bCddLFsnQicsJ2hhcmQnXSxbJ0MnLCdmYXN0J11dLGFuczonQid9LAogIHtuOjksdGV4dDonVGhlcmUgd2FzIGEgX19fX18gYWJvdXQgYSBjb21wZXRpdGlvbiBpbiBhIHBob3RvZ3JhcGh5IG1hZ2F6aW5lLicsb3B0czpbWydBJywnbm90aWNlJ10sWydCJywnYmlsbCddLFsnQycsJ3RpY2tldCddXSxhbnM6J0EnfSwKICB7bjoxMCx0ZXh0OidKYW5lIF9fX19fIHRoZSBmaXJzdCBwcml6ZSBmb3IgaGVyIHBpY3R1cmVzLicsb3B0czpbWydBJywnd29uJ10sWydCJywnY2FycmllZCddLFsnQycsJ2NhdWdodCddXSxhbnM6J0EnfSwKXTsKdmFyIFAzYSA9IFsKICB7bjoxMSx0ZXh0OidXaGVuIHdpbGwgbHVuY2ggYmUgcmVhZHk\/JyxvcHRzOltbJ0EnLCdRdWl0ZSBzb29uLiddLFsnQicsJ0l0XCdzIHNvdXAgYW5kIHRvYXN0LiddLFsnQycsIkkgaG9wZSB5b3UncmUgaHVuZ3J5LiJdXSxhbnM6J0EnfSwKICB7bjoxMix0ZXh0OiJJdCdzIHZlcnkgaG90IGluIGhlcmUuIixvcHRzOltbJ0EnLCdEbyB5b3UgZmVlbCBjb2xkPyddLFsnQicsIkknbGwgdHVybiBvbiB0aGUgaGVhdGluZy4iXSxbJ0MnLCJMZXQncyBnbyBvdXRzaWRlIHRoZW4uIl1dLGFuczonQyd9LAogIHtuOjEzLHRleHQ6J0hhdmUgeW91IG1ldCBIZW5yeSBiZWZvcmU\/JyxvcHRzOltbJ0EnLCdZZXMsIGF0IGZpcnN0LiddLFsnQicsJ1llcywgb24gaG9saWRheS4nXSxbJ0MnLCdZZXMsIEkgZG8uJ11dLGFuczonQid9LAogIHtuOjE0LHRleHQ6J0RvIHlvdSBsaWtlIHZpc2l0aW5nIG11c2V1bXM\/JyxvcHRzOltbJ0EnLCdJXCdkIGxvdmUgdG8hJ10sWydCJywiTm8sIEkgaGF2ZW4ndC4iXSxbJ0MnLCdOb3QgcmVhbGx5LiddXSxhbnM6J0MnfSwKICB7bjoxNSx0ZXh0OiJJJ3ZlIGJyb2tlbiBteSBnbGFzc2VzLiIsb3B0czpbWydBJywiSGVyZSdzIGFub3RoZXIgb25lLiJdLFsnQicsIllvdSBjYW4ndCBzZWUuIl0sWydDJywiVGhhdCdzIGEgcGl0eSEiXV0sYW5zOidDJ30sCl07CnZhciBQM2JBbnMgPSB7MTY6J0MnLDE3OidHJywxODonRicsMTk6J0QnLDIwOidBJ307CnZhciBQNCA9IFsKICB7bjoyMSx0ZXh0OidBIGZldyBkYXlzIGFnbywgSm9obiB3YXMgb24gdGVsZXZpc2lvbiBpbiBKYXBhbi4nLG9wdHM6W1snQScsJ1JpZ2h0J10sWydCJywnV3JvbmcnXSxbJ0MnLCJEb2Vzbid0IHNheSJdXSxhbnM6J0EnfSwKICB7bjoyMix0ZXh0OiJKb2huJ3MgZmlyc3Qgc2hvdyBpbiBKYXBhbiB3YXMgb24gdGhlIHJhZGlvLiIsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQid9LAogIHtuOjIzLHRleHQ6J0pvaG4gaG9wZXMgdG8gYmVjb21lIGZhbW91cyBpbiBFbmdsYW5kIG9uZSBkYXkuJyxvcHRzOltbJ0EnLCdSaWdodCddLFsnQicsJ1dyb25nJ10sWydDJywiRG9lc24ndCBzYXkiXV0sYW5zOidDJ30sCiAge246MjQsdGV4dDonSm9obiBQaWNrZXJpbmcgYW5kIEpvbiBPdGlzIGFyZSB0aGUgc2FtZSBwZXJzb24uJyxvcHRzOltbJ0EnLCdSaWdodCddLFsnQicsJ1dyb25nJ10sWydDJywiRG9lc24ndCBzYXkiXV0sYW5zOidBJ30sCiAge246MjUsdGV4dDonSm9obiB3aWxsIHN0aWxsIHdvcmsgaW4gdGhlIHBhcmsgYmVjYXVzZSBoZSBuZWVkcyB0aGUgbW9uZXkuJyxvcHRzOltbJ0EnLCdSaWdodCddLFsnQicsJ1dyb25nJ10sWydDJywiRG9lc24ndCBzYXkiXV0sYW5zOidBJ30sCiAge246MjYsdGV4dDoiSm9obidzIGNvbGxlYWd1ZXMgdGhpbmsgaGlzIHNvbmdzIGFyZSB2ZXJ5IGdvb2QuIixvcHRzOltbJ0EnLCdSaWdodCddLFsnQicsJ1dyb25nJ10sWydDJywiRG9lc24ndCBzYXkiXV0sYW5zOidCJ30sCiAge246MjcsdGV4dDoiSm9obidzIHdpZmUgd291bGQgbGlrZSBoaW0gdG8gc3RvcCBzaW5naW5nLiIsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQyd9LApdOwp2YXIgUDUgPSBbCiAge246Mjgsb3B0czpbWydBJywnaGFkJ10sWydCJywnaGFzJ10sWydDJywnaGF2ZSddXSxhbnM6J0MnfSwKICB7bjoyOSxvcHRzOltbJ0EnLCdjYW4nXSxbJ0InLCdzaGFsbCddLFsnQycsJ2RvJ11dLGFuczonQSd9LAogIHtuOjMwLG9wdHM6W1snQScsJ3VudGlsJ10sWydCJywnd2hlbiddLFsnQycsJ2R1cmluZyddXSxhbnM6J0InfSwKICB7bjozMSxvcHRzOltbJ0EnLCdiZXN0J10sWydCJywnYmV0dGVyJ10sWydDJywnZ29vZCddXSxhbnM6J0InfSwKICB7bjozMixvcHRzOltbJ0EnLCdhdCddLFsnQicsJ2luJ10sWydDJywnb24nXV0sYW5zOidBJ30sCiAge246MzMsb3B0czpbWydBJywnYWxzbyddLFsnQicsJ3RvbyddLFsnQycsJ29yJ11dLGFuczonQyd9LAogIHtuOjM0LG9wdHM6W1snQScsJ3NlZSddLFsnQicsJ3NhdyddLFsnQycsJ3NlZW4nXV0sYW5zOidBJ30sCiAge246MzUsb3B0czpbWydBJywnbmV2ZXInXSxbJ0InLCdub3QnXSxbJ0MnLCdubyddXSxhbnM6J0InfSwKXTsKdmFyIFA2ID0gWwogIHtuOjM2LHRleHQ6J1lvdSBtYXkgZmluZCBzbm93IG9uIHRoZSB0b3Agb2YgdGhpcyBhdCBhbGwgdGltZXMgb2YgdGhlIHllYXIuJyxmaXJzdDonbScsYW5zOidtb3VudGFpbid9LAogIHtuOjM3LHRleHQ6J1RoZSBmYXJtZXIgcHV0cyBhbmltYWxzIG9yIHBsYW50cyBoZXJlLicsZmlyc3Q6J2YnLGFuczonZmllbGQnfSwKICB7bjozOCx0ZXh0OidQZW9wbGUgaGF2ZSB0byBjcm9zcyB3YXRlciB0byBnZXQgdG8gdGhpcy4nLGZpcnN0OidpJyxhbnM6J2lzbGFuZCd9LAogIHtuOjM5LHRleHQ6J1RoZSB3YXRlciBpbiB0aGlzIHN0YXJ0cyBpbiB0aGUgaGlsbHMgYW5kIHJ1bnMgdG8gdGhlIHNlYS4nLGZpcnN0OidyJyxhbnM6J3JpdmVyJ30sCiAge246NDAsdGV4dDonRW5naW5lZXJzIGJ1aWxkIHRoaXMgdG8gdGFrZSB0aGluZ3MgaW4gYm9hdHMgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlci4nLGZpcnN0OidjJyxhbnM6J2NhbmFsJ30sCl07Ci8vIFBhcnQgNyBcdTIwMTQgbGV0dGVyIGNsb3plOiBhY2NlcHRlZCBhbnN3ZXJzCnZhciBQN0FucyA9IHsKICA0MTpbJ2FueSddLAogIDQyOlsndG8nXSwKICA0MzpbJ25leHQnLCd0aGlzJ10sCiAgNDQ6Wyd3aXRoJ10sCiAgNDU6WydhcmUnXSwKICA0NjpbJ2JlJ10sCiAgNDc6Wyd3aWxsJywnc2hhbGwnLCInbGwiLCdsbCcsJ211c3QnXSwKICA0ODpbJ2EnXSwKICA0OTpbJ3NheSddLAogIDUwOlsnbWUnXSwKfTsKLy8gUGFydCA4CnZhciBQOEFucyA9IHsKICA1MTpbJ21ycyBiZWxsJywnbXJzLiBiZWxsJywnYmVsbCcsJ21ycyBiZWxsLiddLAogIDUyOlsncGlhbm8nXSwKICA1MzpbJ21vZGVybicsJ21vZGVybiBtdXNpYycsJ3BvcCcsJ21vZGVybiAobXVzaWMpJywncG9wIG11c2ljJ10sCiAgNTQ6Wyd0aHVyc2RheScsJ3RodXInLCd0aHVycycsJ3RodXJzZGF5LiddLAogIDU1OlsnMy4zMCBwLm0uJywnMy4zMCBwbScsJzMuMzBwbScsJzMuMzAgcC5tJywnMy4zMCcsJzE1LjMwJywnMzozMCBwLm0uJywnMzozMCBwbScsJzM6MzAnLCdoYWxmIHBhc3QgdGhyZWUnXSwKfTsKCi8vID09PT09IFJlbmRlcmluZyA9PT09PQpmdW5jdGlvbiByZW5kZXJNQ1EobGlzdEVsLCBkYXRhKXsKICBkYXRhLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICB2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZGl2LmNsYXNzTmFtZT0ncS1pdGVtJzsgZGl2LmRhdGFzZXQucWlkPXEubjsKICAgIHZhciBvcHRzSFRNTD0nJzsKICAgIGlmKEFycmF5LmlzQXJyYXkocS5vcHRzKSl7CiAgICAgIHEub3B0cy5mb3JFYWNoKGZ1bmN0aW9uKG8pewogICAgICAgIG9wdHNIVE1MICs9ICc8bGFiZWwgY2xhc3M9Im9wdCIgZGF0YS1sZXR0ZXI9Iicrb1swXSsnIj48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InEnK3EubisnIiB2YWx1ZT0iJytvWzBdKyciPjxzcGFuIGNsYXNzPSJvcHQtbGV0dGVyIj4nK29bMF0rJzwvc3Bhbj4gJytlc2NhcGVIdG1sKG9bMV0pKyc8L2xhYmVsPic7CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgLy8gc3RyaW5nIG9mIGxldHRlcnMgKFAxKQogICAgICBmb3IodmFyIGk9MDtpPHEub3B0cy5sZW5ndGg7aSsrKXsKICAgICAgICB2YXIgTD1xLm9wdHNbaV07CiAgICAgICAgb3B0c0hUTUwgKz0gJzxsYWJlbCBjbGFzcz0ib3B0IiBkYXRhLWxldHRlcj0iJytMKyciPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icScrcS5uKyciIHZhbHVlPSInK0wrJyI+PHNwYW4gY2xhc3M9Im9wdC1sZXR0ZXIiPicrTCsnPC9zcGFuPjwvbGFiZWw+JzsKICAgICAgfQogICAgfQogICAgZGl2LmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJxLXRleHQiPjxiIGNsYXNzPSJxbiI+JytxLm4rJy48L2I+PHNwYW4+Jytlc2NhcGVIdG1sKHEudGV4dCkrJzwvc3Bhbj48L2Rpdj4nKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJxLW9wdHMiPicrb3B0c0hUTUwrJzwvZGl2PicrCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZlZWRiYWNrIj48L2Rpdj4nOwogICAgbGlzdEVsLmFwcGVuZENoaWxkKGRpdik7CiAgfSk7Cn0KZnVuY3Rpb24gZXNjYXBlSHRtbChzKXtyZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoL1smPD4iJ10vZyxmdW5jdGlvbihjKXtyZXR1cm4geycmJzonJmFtcDsnLCc8JzonJmx0OycsJz4nOicmZ3Q7JywnIic6JyZxdW90OycsIiciOicmIzM5Oyd9W2NdfSl9CgpyZW5kZXJNQ1EoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQxTGlzdCcpLFAxKTsKcmVuZGVyTUNRKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0Mkxpc3QnKSxQMik7CnJlbmRlck1DUShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDNhTGlzdCcpLFAzYSk7CnJlbmRlck1DUShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDRMaXN0JyksUDQpOwoKLy8gUGFydCA1IFx1MjAxNCByZW5kZXIgYXMgTUNRIGxpc3QgdW5kZXIgdGhlIHBhc3NhZ2UKcmVuZGVyTUNRKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0NUxpc3QnKSxQNS5tYXAoZnVuY3Rpb24ocSl7cmV0dXJuIHtuOnEubix0ZXh0OidRdWVzdGlvbiAnK3EubisnIFx1MjAxNCBjaG9vc2UgdGhlIGJlc3Qgd29yZCBmb3IgdGhlIGdhcC4nLG9wdHM6cS5vcHRzLGFuczpxLmFuc319KSk7CgovLyBQYXJ0IDYgXHUyMDE0IGZpcnN0LWxldHRlciArIGRhc2hlcyArIGlucHV0CihmdW5jdGlvbigpewogIHZhciBsaXN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0Nkxpc3QnKTsKICBQNi5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgdmFyIGRhc2hDb3VudCA9IHEuYW5zLmxlbmd0aCAtIDE7CiAgICB2YXIgZGFzaGVzID0gbmV3IEFycmF5KGRhc2hDb3VudCkuZmlsbCgnXycpLmpvaW4oJyAnKTsKICAgIHZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGRpdi5jbGFzc05hbWU9J3EtaXRlbSc7IGRpdi5kYXRhc2V0LnFpZD1xLm47CiAgICBkaXYuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJxLXRleHQiPjxiIGNsYXNzPSJxbiI+JytxLm4rJy48L2I+PHNwYW4+Jytlc2NhcGVIdG1sKHEudGV4dCkrJzwvc3Bhbj48L2Rpdj4nKwogICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0id29yZC1yb3ciPjxzcGFuIGNsYXNzPSJmaXJzdC1sZXR0ZXIiPicrcS5maXJzdCsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXQtYmxhbmsiIGRhdGEtcT0iJytxLm4rJyIgcGxhY2Vob2xkZXI9IicrZGFzaGVzKyciIHN0eWxlPSJtaW4td2lkdGg6MjAwcHgiPjwvZGl2PicrCiAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmZWVkYmFjayI+PC9kaXY+JzsKICAgIGxpc3QuYXBwZW5kQ2hpbGQoZGl2KTsKICB9KTsKfSkoKTsKCi8vID09PT09IFdpcmUgb3B0aW9uIGNsaWNrcyA9PT09PQpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcub3B0JykuZm9yRWFjaChmdW5jdGlvbihvcHQpewogIG9wdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZSl7CiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB2YXIgaW5wdXQ9b3B0LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7CiAgICB2YXIgZ3JvdXA9b3B0LnBhcmVudEVsZW1lbnQ7CiAgICBncm91cC5xdWVyeVNlbGVjdG9yQWxsKCcub3B0JykuZm9yRWFjaChmdW5jdGlvbihvKXtvLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyl9KTsKICAgIG9wdC5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpOwogICAgaW5wdXQuY2hlY2tlZD10cnVlOwogICAgdXBkYXRlUHJvZ3Jlc3MoKTsKICB9KTsKfSk7CgovLyBpbnB1dHMKZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmlucHV0LWJsYW5rLC5xLXNlbGVjdCcpLmZvckVhY2goZnVuY3Rpb24oZWwpewogIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0Jyx1cGRhdGVQcm9ncmVzcyk7CiAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJyx1cGRhdGVQcm9ncmVzcyk7Cn0pOwoKLy8gPT09PT0gU3VibWl0ICYgR3JhZGUgPT09PT0KZnVuY3Rpb24gZ2V0TWNxQW5zKHFpZCl7CiAgdmFyIHNlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJxJytxaWQrJyJdOmNoZWNrZWQnKTsKICByZXR1cm4gc2VsP3NlbC52YWx1ZTpudWxsOwp9CmZ1bmN0aW9uIGdldElucHV0QW5zKHFpZCl7CiAgdmFyIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrcWlkKyciXScpOwogIHJldHVybiBlbD9lbC52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTonJzsKfQpmdW5jdGlvbiBnZXRTZWxlY3RBbnMocWlkKXsKICB2YXIgZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnEtc2VsZWN0W2RhdGEtcWlkPSInK3FpZCsnIl0nKTsKICByZXR1cm4gZWw\/ZWwudmFsdWU6Jyc7Cn0KZnVuY3Rpb24gdG90YWxRcygpe3JldHVybiA1NX0KCmZ1bmN0aW9uIGFuc3dlcmVkQ291bnQoKXsKICB2YXIgbj0wOwogIC8vIE1DUTogUDEoMS01KSBQMig2LTEwKSBQM2EoMTEtMTUpIFA0KDIxLTI3KSBQNSgyOC0zNSkKICBbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzVdLmZvckVhY2goZnVuY3Rpb24ocSl7aWYoZ2V0TWNxQW5zKHEpKW4rK30pOwogIFsxNiwxNywxOCwxOSwyMF0uZm9yRWFjaChmdW5jdGlvbihxKXtpZihnZXRTZWxlY3RBbnMocSkpbisrfSk7CiAgLy8gaW5wdXRzCiAgZm9yKHZhciBpPTM2O2k8PTU1O2krKyl7aWYoZ2V0SW5wdXRBbnMoaSkpbisrfQogIHJldHVybiBuOwp9CmZ1bmN0aW9uIHVwZGF0ZVByb2dyZXNzKCl7CiAgdmFyIGE9YW5zd2VyZWRDb3VudCgpLCB0b3RhbD10b3RhbFFzKCk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fuc3dlcmVkQ291bnQnKS50ZXh0Q29udGVudD1hOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9nRmlsbCcpLnN0eWxlLndpZHRoPShhL3RvdGFsKjEwMCkrJyUnOwp9Cgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VibWl0QnRuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgdmFyIHNjb3JlPTA7CiAgLy8gTUNRIHBhcnRzCiAgdmFyIG1jcVBhcnRzPVtQMSxQMixQM2EsUDQsUDVdOwogIG1jcVBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCl7CiAgICBwYXJ0LmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIHZhciB2PWdldE1jcUFucyhxLm4pLCBpdGVtPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xLWl0ZW1bZGF0YS1xaWQ9IicrcS5uKyciXScpOwogICAgICBpZighaXRlbSlyZXR1cm47CiAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnYW5zd2VyZWQnKTsKICAgICAgLy8gbWFyayBjb3JyZWN0L2luY29ycmVjdCBvcHRzCiAgICAgIGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgnLm9wdCcpLmZvckVhY2goZnVuY3Rpb24obyl7CiAgICAgICAgdmFyIEw9by5kYXRhc2V0LmxldHRlcjsKICAgICAgICBpZihMPT09cS5hbnMpe28uY2xhc3NMaXN0LmFkZCgnY29ycmVjdC1vcHQnKX0KICAgICAgICBpZih2PT09TClpZihMIT09cS5hbnMpe28uY2xhc3NMaXN0LmFkZCgnd3Jvbmctb3B0Jyl9CiAgICAgIH0pOwogICAgICB2YXIgZmI9aXRlbS5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2snKTsKICAgICAgaWYodj09PXEuYW5zKXtzY29yZSsrOyBpdGVtLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTsgZmIudGV4dENvbnRlbnQ9J1x1MjcxNCBDb3JyZWN0IFx1MjAxNCAnK3EuYW5zfQogICAgICBlbHNle2l0ZW0uY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTsgZmIudGV4dENvbnRlbnQ9J1x1MjcxOCBXcm9uZyBcdTIwMTQgY29ycmVjdCBhbnN3ZXI6ICcrcS5hbnMgKyAodj8oJyAoeW91IGNob3NlICcrdisnKScpOicgKG5vIGFuc3dlciknKX0KICAgIH0pOwogIH0pOwogIC8vIFBhcnQgM2Igc2VsZWN0cwogIHZhciBwM2JGYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDNiRmVlZGJhY2snKTsKICBwM2JGYi5pbm5lckhUTUw9Jyc7CiAgT2JqZWN0LmtleXMoUDNiQW5zKS5mb3JFYWNoKGZ1bmN0aW9uKHFpZCl7CiAgICB2YXIgdj1nZXRTZWxlY3RBbnMocWlkKSwgY29ycmVjdD1QM2JBbnNbcWlkXTsKICAgIHZhciBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucS1zZWxlY3RbZGF0YS1xaWQ9IicrcWlkKyciXScpOwogICAgaWYoZWwpe2VsLnN0eWxlLmJvcmRlckNvbG9yPSh2PT09Y29ycmVjdD8nIzEwQjk4MSc6JyNFRjQ0NDQnKTsgZWwuc3R5bGUuYm9yZGVyV2lkdGg9JzJweCc7IGVsLnN0eWxlLmJvcmRlclN0eWxlPSdzb2xpZCd9CiAgICB2YXIgbm90ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIG5vdGUuc3R5bGUuY3NzVGV4dD0ncGFkZGluZzo4cHggMTJweDtib3JkZXItcmFkaXVzOjhweDttYXJnaW4tdG9wOjZweDtmb250LXNpemU6MTMuNXB4O2ZvbnQtd2VpZ2h0OjYwMDsnKyh2PT09Y29ycmVjdD8nYmFja2dyb3VuZDpyZ2JhKDE2LDE4NSwxMjksLjEyKTtjb2xvcjojMDY1RjQ2JzonYmFja2dyb3VuZDpyZ2JhKDIzOSw2OCw2OCwuMTApO2NvbG9yOiM5OTFCMUInKTsKICAgIG5vdGUuaW5uZXJIVE1MPSc8Yj5RJytxaWQrJzwvYj46ICcrKHY9PT1jb3JyZWN0PydcdTI3MTQgQ29ycmVjdCAoJytjb3JyZWN0KycpJzonXHUyNzE4IFdyb25nIFx1MjAxNCBjb3JyZWN0OiAnK2NvcnJlY3QrKHY\/JywgeW91IGNob3NlICcrdjonLCBubyBhbnN3ZXInKSk7CiAgICBwM2JGYi5hcHBlbmRDaGlsZChub3RlKTsKICAgIGlmKHY9PT1jb3JyZWN0KXNjb3JlKys7CiAgfSk7CiAgLy8gUGFydCA2CiAgUDYuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgIHZhciB2PWdldElucHV0QW5zKHEubiksIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrcS5uKyciXScpLCBpdGVtPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xLWl0ZW1bZGF0YS1xaWQ9IicrcS5uKyciXScpOwogICAgaWYoIWVsfHwhaXRlbSlyZXR1cm47CiAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2Fuc3dlcmVkJyk7CiAgICB2YXIgb2s9KHY9PT1xLmFucy50b0xvd2VyQ2FzZSgpKTsKICAgIGlmKG9rKXtzY29yZSsrOyBlbC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7IGl0ZW0uY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOyBpdGVtLnF1ZXJ5U2VsZWN0b3IoJy5mZWVkYmFjaycpLnRleHRDb250ZW50PSdcdTI3MTQgQ29ycmVjdCd9CiAgICBlbHNle2VsLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7IGl0ZW0uY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTsgaXRlbS5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2snKS50ZXh0Q29udGVudD0nXHUyNzE4IFdyb25nIFx1MjAxNCBjb3JyZWN0OiAnK3EuYW5zfQogIH0pOwogIC8vIFBhcnQgNwogIE9iamVjdC5rZXlzKFA3QW5zKS5mb3JFYWNoKGZ1bmN0aW9uKHFpZCl7CiAgICB2YXIgdj1nZXRJbnB1dEFucyhxaWQpLCBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3FpZCsnIl0nKSwgYWNjZXB0ZWQ9UDdBbnNbcWlkXTsKICAgIGlmKCFlbClyZXR1cm47CiAgICB2YXIgb2s9YWNjZXB0ZWQuaW5kZXhPZih2KT49MDsKICAgIGlmKG9rKXtzY29yZSsrOyBlbC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyl9IGVsc2Uge2VsLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7IGVsLnRpdGxlPSdDb3JyZWN0OiAnK2FjY2VwdGVkLmpvaW4oJyAvICcpfQogIH0pOwogIC8vIFBhcnQgOAogIE9iamVjdC5rZXlzKFA4QW5zKS5mb3JFYWNoKGZ1bmN0aW9uKHFpZCl7CiAgICB2YXIgdj1nZXRJbnB1dEFucyhxaWQpLCBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3FpZCsnIl0nKSwgYWNjZXB0ZWQ9UDhBbnNbcWlkXTsKICAgIGlmKCFlbClyZXR1cm47CiAgICB2YXIgb2s9YWNjZXB0ZWQuaW5kZXhPZih2KT49MDsKICAgIGlmKG9rKXtzY29yZSsrOyBlbC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyl9IGVsc2Uge2VsLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7IGVsLnRpdGxlPSdDb3JyZWN0OiAnK2FjY2VwdGVkLmpvaW4oJyAvICcpfQogIH0pOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcmVOb3cnKS50ZXh0Q29udGVudD1zY29yZTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmluYWxTY29yZScpLnRleHRDb250ZW50PXNjb3JlOwogIHZhciBwY3Q9TWF0aC5yb3VuZChzY29yZS81NSoxMDApOwogIHZhciBtc2c9Jyc7CiAgaWYocGN0Pj04NSkgbXNnPSdcdXsxRjNDNn0gRXhjZWxsZW50ISBZb3UgYXJlIHdlbGwgcHJlcGFyZWQgZm9yIHRoZSByZWFsIEtFVCBleGFtLic7CiAgZWxzZSBpZihwY3Q+PTcwKSBtc2c9J1x1ezFGNDREfSBHb29kIGpvYiEgQSBmZXcgbW9yZSB0ZXN0cyBhbmQgeW91IHdpbGwgYmUgcmVhZHkuJzsKICBlbHNlIGlmKHBjdD49NTApIG1zZz0nXHV7MUY0REF9IEtlZXAgcHJhY3Rpc2luZyBcdTIwMTQgcmV2aWV3IHRoZSB3cm9uZyBhbnN3ZXJzIGFib3ZlLic7CiAgZWxzZSBtc2c9J1x1ezFGNEFBfSBTdGFydCB3aXRoIHRoZSBiYXNpY3MuIFJlcmVhZCB0aGUgcGFzc2FnZXMgYW5kIHRyeSBhZ2Fpbi4nOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzTXNnJykudGV4dENvbnRlbnQ9bXNnOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzQmFubmVyJykuY2xhc3NMaXN0LmFkZCgnc2hvdycpOwogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0c0Jhbm5lcicpLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonY2VudGVyJ30pfSwxMjApOwp9KTsKCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldEJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogIGlmKCFjb25maXJtKCdSZXNldCBhbGwgYW5zd2Vycz8nKSlyZXR1cm47CiAgbG9jYXRpb24ucmVsb2FkKCk7Cn0pOwoKLy8gV3JpdGluZyB3b3JkIGNvdW50ZXIKdmFyIHRhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cml0aW5nQXJlYScpLHdjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3Y0NvdW50ZXInKTsKdGEuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLGZ1bmN0aW9uKCl7CiAgdmFyIHc9dGEudmFsdWUudHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoOwogIHdjLnRleHRDb250ZW50PXcrJyB3b3JkcyBcdTAwQjcgdGFyZ2V0IDI1XHUyMDEzMzUnOwogIHdjLmNsYXNzTGlzdC5yZW1vdmUoJ29rJywnb3ZlcicpOwogIGlmKHc+PTI1KWlmKHc8PTM1KXdjLmNsYXNzTGlzdC5hZGQoJ29rJyk7CiAgZWxzZSBpZih3PjM1KXdjLmNsYXNzTGlzdC5hZGQoJ292ZXInKTsKfSk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW1wbGVUb2dnbGUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FtcGxlQm94JykuY2xhc3NMaXN0LnRvZ2dsZSgnc2hvdycpOwp9KTsKCi8vID09PT09IFNIT1cgQU5TV0VSIFBFUi1RIEZFQVRVUkUgPT09PT0KZnVuY3Rpb24gZ2V0QW5zRm9yUShuKXsKICBpZihuPj0xKSBpZihuPD01KSByZXR1cm4gKFAxLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubj09PW59KXx8e30pLmFuczsKICBpZihuPj02KSBpZihuPD0xMCkgcmV0dXJuIChQMi5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1ufSl8fHt9KS5hbnM7CiAgaWYobj49MTEpIGlmKG48PTE1KSByZXR1cm4gKFAzYS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1ufSl8fHt9KS5hbnM7CiAgaWYobj49MjEpIGlmKG48PTI3KSByZXR1cm4gKFA0LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubj09PW59KXx8e30pLmFuczsKICBpZihuPj0yOCkgaWYobjw9MzUpIHJldHVybiAoUDUuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uPT09bn0pfHx7fSkuYW5zOwogIHJldHVybiBudWxsOwp9Ci8vIE1DUSBxLWl0ZW1zOiBhcHBlbmQgU2hvdyBBbnN3ZXIgYnV0dG9uCmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5xLWl0ZW0nKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pewogIGlmKGl0ZW0ucXVlcnlTZWxlY3RvcignLnNob3ctYW5zLWJ0bicpKSByZXR1cm47CiAgdmFyIHFpZD1wYXJzZUludChpdGVtLmRhdGFzZXQucWlkKTsKICB2YXIgYnRuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGJ0bi5jbGFzc05hbWU9J3Nob3ctYW5zLWJ0bic7IGJ0bi50eXBlPSdidXR0b24nOwogIGJ0bi5pbm5lckhUTUw9J1x1ezFGNDQxfSBTaG93IEFuc3dlcic7CiAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIGlzUDY9ZmFsc2U7IGlmKHFpZD49MzYpIGlmKHFpZDw9NDApIGlzUDY9dHJ1ZTsKICAgIGlmKGlzUDYpewogICAgICAvLyBQYXJ0IDYgc3BlbGwgaW5wdXQKICAgICAgdmFyIHA2cT1QNi5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1xaWR9KTsKICAgICAgdmFyIGlucHV0PWl0ZW0ucXVlcnlTZWxlY3RvcignLmlucHV0LWJsYW5rJyk7CiAgICAgIGlmKGlucHV0KSBpZihwNnEpe2lucHV0LnZhbHVlPXA2cS5hbnM7IGlucHV0LmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTsgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO30KICAgICAgdmFyIGZiNj1pdGVtLnF1ZXJ5U2VsZWN0b3IoJy5mZWVkYmFjaycpOwogICAgICBpZihmYjYpIGlmKHA2cSl7aXRlbS5jbGFzc0xpc3QuYWRkKCdhbnN3ZXJlZCcpOyBpdGVtLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTsgZmI2LnRleHRDb250ZW50PSdcdXsxRjQ0MX0gQW5zd2VyOiAnK3A2cS5hbnM7fQogICAgfSBlbHNlIHsKICAgICAgdmFyIGFucz1nZXRBbnNGb3JRKHFpZCk7CiAgICAgIGlmKCFhbnMpIHJldHVybjsKICAgICAgLy8gaGlnaGxpZ2h0IGNvcnJlY3Qgb3B0aW9uCiAgICAgIHZhciBjb3JyZWN0T3B0PWl0ZW0ucXVlcnlTZWxlY3RvcignLm9wdFtkYXRhLWxldHRlcj0iJythbnMrJyJdJyk7CiAgICAgIGlmKGNvcnJlY3RPcHQpe2NvcnJlY3RPcHQuY2xhc3NMaXN0LmFkZCgnY29ycmVjdC1vcHQnKTt9CiAgICAgIC8vIHNpbXVsYXRlIGNsaWNrIHNvIHVwZGF0ZVByb2dyZXNzIGZpcmVzCiAgICAgIHZhciBmYj1pdGVtLnF1ZXJ5U2VsZWN0b3IoJy5mZWVkYmFjaycpOwogICAgICBpZihmYil7aXRlbS5jbGFzc0xpc3QuYWRkKCdhbnN3ZXJlZCcpOyBmYi5zdHlsZS5iYWNrZ3JvdW5kPSdyZ2JhKDE2LDE4NSwxMjksLjEyKSc7IGZiLnN0eWxlLmNvbG9yPScjMDY1RjQ2JzsgZmIudGV4dENvbnRlbnQ9J1x1ezFGNDQxfSBBbnN3ZXI6ICcrYW5zO30KICAgIH0KICAgIGJ0bi5kaXNhYmxlZD10cnVlOwogIH0pOwogIGl0ZW0uYXBwZW5kQ2hpbGQoYnRuKTsKfSk7Ci8vIFBhcnQgM2Igc2VsZWN0czogYXBwZW5kIGlubGluZSBTaG93IEFuc3dlciBidXR0b24KWzE2LDE3LDE4LDE5LDIwXS5mb3JFYWNoKGZ1bmN0aW9uKHFpZCl7CiAgdmFyIHNlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucS1zZWxlY3RbZGF0YS1xaWQ9IicrcWlkKyciXScpOwogIGlmKCFzZWwpIHJldHVybjsKICB2YXIgYnRuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGJ0bi5jbGFzc05hbWU9J3Nob3ctYW5zLWJ0bi1pbmxpbmUnOyBidG4udHlwZT0nYnV0dG9uJzsKICB2YXIgYW5zPVAzYkFuc1txaWRdOwogIGJ0bi5pbm5lckhUTUw9J1x1ezFGNDQxfSAnK2FuczsKICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICBzZWwudmFsdWU9YW5zOyBzZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKICAgIHNlbC5zdHlsZS5ib3JkZXJDb2xvcj0nIzEwQjk4MSc7IHNlbC5zdHlsZS5ib3JkZXJXaWR0aD0nMnB4Jzsgc2VsLnN0eWxlLmJvcmRlclN0eWxlPSdzb2xpZCc7CiAgICBidG4uZGlzYWJsZWQ9dHJ1ZTsKICB9KTsKICBzZWwuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIGJ0bik7Cn0pOwovLyBQYXJ0IDcgJiA4IGlucHV0czogYXBwZW5kIGlubGluZSBTaG93IEFuc3dlciBidXR0b24KZm9yKHZhciBxaT00MTtxaTw9NTU7cWkrKyl7CiAgKGZ1bmN0aW9uKHFpZCl7CiAgICB2YXIgaW5wPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrcWlkKyciXScpOwogICAgaWYoIWlucCkgcmV0dXJuOwogICAgdmFyIGFucz0ocWlkPD01MCk\/UDdBbnNbcWlkXVswXTpQOEFuc1txaWRdWzBdOwogICAgdmFyIGJ0bj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICAgIGJ0bi5jbGFzc05hbWU9J3Nob3ctYW5zLWJ0bi1pbmxpbmUnOyBidG4udHlwZT0nYnV0dG9uJzsKICAgIGJ0bi5pbm5lckhUTUw9J1x1ezFGNDQxfSAnK2FuczsKICAgIGJ0bi50aXRsZT0nQ2xpY2sgdG8gZmlsbDogJythbnM7CiAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAgIGlucC52YWx1ZT1hbnM7IGlucC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7IGlucC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7CiAgICAgIGJ0bi5kaXNhYmxlZD10cnVlOwogICAgfSk7CiAgICBpbnAuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIGJ0bik7CiAgfSkocWkpOwp9Cgp9KSgpOwo='));<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>All English 4U Grammar IELTS TOEFL Cambridge CELPIP Dictation Back Grammar IELTS TOEFL Cambridge CELPIP Dictation Cambridge English &#183; Key (KET) KET 3 &#8212; Test 4Reading &amp; Writing Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-3847","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/3847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=3847"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/3847\/revisions"}],"predecessor-version":[{"id":5911,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/3847\/revisions\/5911"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=3847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}