+> Readme is needed to be updated
-
+# Dont Compete
-
-
+**Dont Compete** is a purely local, containerized, and agent-driven platform for GATE (Graduate Aptitude Test in Engineering) preparation. It combines a modern React frontend with an autonomous backend pipeline that scrapes, classifies, and generates study materials from raw syllabus PDFs and local LLMs.
-[](https://TODO.aossie.org/)
+## Core Philosophy & Features
-
+* **100% Local & Private**: All data processing and AI generation happens on your machine using Ollama. No external APIs, no cloud dependencies.
+* **Container-First Architecture**: The entire system runs via Docker Compose. No local Python or Node.js environment setup required.
+* **Functional Asset Generator**:
+ * **Sequential Pipeline**: 8-stage functional sequence (Download -> OCR -> DB Sync -> Classification -> Theory -> Manifest).
+ * **Deterministic**: Heuristic Parsing ensures high-fidelity image extraction for questions and explanations.
+ * **Idempotent**: Re-runs extend existing datasets instead of reclaiming them.
+* **Modern Modular Interface**:
+ * **Modular Shell**: Minimal root layout delegating logic to specialized, reusable components.
+ * **Adaptive Assessment**: Handles MCQ, MSQ, and Numeric inputs with real-time validation.
+ * **Dynamic Navigation**: URI-based breadcrumbs and stateful dashboard expansion.
-
+The system is split into two autonomous components that communicate via shared file-system artifacts:
----
+1. **Asset Generator (`/generator`)**: A functional Python pipeline using DuckDB, PyMuPDF, `tenacity` (retries), and Ollama.
+2. **Frontend (`/frontend`)**: A high-performance React application (Vite, TanStack Router) that **dynamically discovers** generated static assets via filesystem structure (Zero-Config discovery).
-
+ );
+ },
+});
+```
+
+Loaders simplify your data fetching logic dramatically. Check out more information in the [Loader documentation](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#loader-parameters).
+
+### React-Query
+
+React-Query is an excellent addition or alternative to route loading and integrating it into you application is a breeze.
+
+First add your dependencies:
+
+```bash
+npm install @tanstack/react-query @tanstack/react-query-devtools
+```
+
+Next we'll need to create a query client and provider. We recommend putting those in `main.tsx`.
+
+```tsx
+import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
+
+// ...
+
+const queryClient = new QueryClient();
+
+// ...
+
+if (!rootElement.innerHTML) {
+ const root = ReactDOM.createRoot(rootElement);
+
+ root.render(
+
+
+
+ );
+}
+```
+
+You can also add TanStack Query Devtools to the root route (optional).
+
+```tsx
+import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
+
+const rootRoute = createRootRoute({
+ component: () => (
+ <>
+
+
+
+ >
+ ),
+});
+```
+
+Now you can use `useQuery` to fetch your data.
+
+```tsx
+import { useQuery } from "@tanstack/react-query";
+
+import "./App.css";
+
+function App() {
+ const { data } = useQuery({
+ queryKey: ["people"],
+ queryFn: () =>
+ fetch("https://swapi.dev/api/people")
+ .then((res) => res.json())
+ .then((data) => data.results as { name: string }[]),
+ initialData: [],
+ });
+
+ return (
+
+
+ {data.map((person) => (
+
{person.name}
+ ))}
+
+
+ );
+}
+
+export default App;
+```
+
+You can find out everything you need to know on how to use React-Query in the [React-Query documentation](https://tanstack.com/query/latest/docs/framework/react/overview).
+
+## State Management
+
+Another common requirement for React applications is state management. There are many options for state management in React. TanStack Store provides a great starting point for your project.
+
+First you need to add TanStack Store as a dependency:
+
+```bash
+npm install @tanstack/store
+```
+
+Now let's create a simple counter in the `src/App.tsx` file as a demonstration.
+
+```tsx
+import { useStore } from "@tanstack/react-store";
+import { Store } from "@tanstack/store";
+import "./App.css";
+
+const countStore = new Store(0);
+
+function App() {
+ const count = useStore(countStore);
+ return (
+
+
+
+ );
+}
+
+export default App;
+```
+
+One of the many nice features of TanStack Store is the ability to derive state from other state. That derived state will update when the base state updates.
+
+Let's check this out by doubling the count using derived state.
+
+```tsx
+import { useStore } from "@tanstack/react-store";
+import { Store, Derived } from "@tanstack/store";
+import "./App.css";
+
+const countStore = new Store(0);
+
+const doubledStore = new Derived({
+ fn: () => countStore.state * 2,
+ deps: [countStore],
+});
+doubledStore.mount();
+
+function App() {
+ const count = useStore(countStore);
+ const doubledCount = useStore(doubledStore);
+
+ return (
+
+
+
Doubled - {doubledCount}
+
+ );
+}
+
+export default App;
+```
+
+We use the `Derived` class to create a new store that is derived from another store. The `Derived` class has a `mount` method that will start the derived store updating.
+
+Once we've created the derived store we can use it in the `App` component just like we would any other store using the `useStore` hook.
+
+You can find out everything you need to know on how to use TanStack Store in the [TanStack Store documentation](https://tanstack.com/store/latest).
+
+# Demo files
+
+Files prefixed with `demo` can be safely deleted. They are there to provide a starting point for you to play around with the features you've installed.
+
+# Learn More
+
+You can learn more about all of the offerings from TanStack in the [TanStack documentation](https://tanstack.com).
diff --git a/frontend/biome.json b/frontend/biome.json
new file mode 100644
index 0000000..64b4d31
--- /dev/null
+++ b/frontend/biome.json
@@ -0,0 +1,36 @@
+{
+ "$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
+ "vcs": {
+ "enabled": false,
+ "clientKind": "git",
+ "useIgnoreFile": false
+ },
+ "files": {
+ "ignoreUnknown": false,
+ "includes": [
+ "**/src/**/*",
+ "**/.vscode/**/*",
+ "**/index.html",
+ "**/vite.config.ts",
+ "!**/src/routeTree.gen.ts",
+ "!**/src/styles.css"
+ ]
+ },
+ "formatter": {
+ "enabled": true,
+ "indentStyle": "tab"
+ },
+ "assist": { "actions": { "source": { "organizeImports": "on" } } },
+ "linter": {
+ "enabled": true,
+ "rules": {
+ "recommended": true
+ }
+ },
+ "javascript": {
+ "formatter": {
+ "quoteStyle": "double"
+ }
+ }
+}
+
diff --git a/frontend/e2e/basic.spec.ts b/frontend/e2e/basic.spec.ts
new file mode 100644
index 0000000..d41d111
--- /dev/null
+++ b/frontend/e2e/basic.spec.ts
@@ -0,0 +1,77 @@
+import { test, expect } from '@playwright/test';
+
+test('homepage loads with correct title', async ({ page }) => {
+ await page.goto('/');
+
+ // Check page title
+ await expect(page).toHaveTitle(/Don't Compete/);
+
+ // Check hero heading
+ await expect(page.getByRole('heading', { name: /Master Your Exams/i })).toBeVisible();
+
+ // Check site description
+ await expect(page.getByText(/free, community-driven learning platform/i)).toBeVisible();
+});
+
+test('homepage shows exam selection section', async ({ page }) => {
+ await page.goto('/');
+
+ // Check "Select Your Exam" heading
+ await expect(page.getByRole('heading', { name: /Select Your Exam/i })).toBeVisible();
+
+ // Either loading spinner or exam cards or "no exams" message should be visible
+ const hasSpinner = await page.locator('.loading-spinner').isVisible().catch(() => false);
+ const hasExams = await page.locator('.card').count() > 0;
+ const hasNoExamsMessage = await page.getByText(/No exams found/i).isVisible().catch(() => false);
+
+ expect(hasSpinner || hasExams || hasNoExamsMessage).toBeTruthy();
+});
+
+test('homepage shows feature cards', async ({ page }) => {
+ await page.goto('/');
+
+ // Check for feature cards
+ await expect(page.getByRole('heading', { name: /Comprehensive Theory/i })).toBeVisible();
+ await expect(page.getByRole('heading', { name: /PYQ Practice/i })).toBeVisible();
+ await expect(page.getByRole('heading', { name: /Smart Learning/i })).toBeVisible();
+});
+
+test('footer displays correctly', async ({ page }) => {
+ await page.goto('/');
+
+ // Check footer content
+ await expect(page.getByText(/Apache 2.0 License/i)).toBeVisible();
+ await expect(page.getByRole('link', { name: /Apache 2.0 License/i })).toHaveAttribute('href', 'https://github.com/imxade/dontcompete');
+});
+
+test.skip('theme toggle works', async ({ page }) => {
+ await page.goto('/');
+
+ // Get initial theme
+ const html = page.locator('html');
+ const initialTheme = await html.getAttribute('data-theme');
+
+ // Theme should be either dracula, cupcake, or null
+ expect(initialTheme === null || ['dracula', 'cupcake'].includes(initialTheme)).toBeTruthy();
+
+ // Click theme toggle button
+ await page.getByRole('button', { name: /Toggle theme/i }).click();
+
+ // Wait a bit for theme to change
+ await page.waitForTimeout(100);
+
+ // Theme should have changed
+ const newTheme = await html.getAttribute('data-theme');
+ expect(newTheme).not.toBe(initialTheme);
+ expect(newTheme === null || ['dracula', 'cupcake'].includes(newTheme)).toBeTruthy();
+});
+
+test('navigation header is present', async ({ page }) => {
+ await page.goto('/');
+
+ // Check for site name in header
+ await expect(page.getByRole('link', { name: /Don't Compete/i }).first()).toBeVisible();
+
+ // Check theme toggle button exists
+ await expect(page.getByRole('button', { name: /Toggle theme/i })).toBeVisible();
+});
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
new file mode 100644
index 0000000..f64fc64
--- /dev/null
+++ b/frontend/package-lock.json
@@ -0,0 +1,9692 @@
+{
+ "name": "frontend-repo",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "frontend-repo",
+ "dependencies": {
+ "@serwist/vite": "^9.0.11",
+ "@serwist/window": "^9.0.11",
+ "@tailwindcss/vite": "^4.0.6",
+ "@tanstack/react-devtools": "^0.7.0",
+ "@tanstack/react-router": "^1.132.0",
+ "@tanstack/react-router-devtools": "^1.132.0",
+ "@tanstack/react-router-ssr-query": "^1.131.7",
+ "@tanstack/react-start": "^1.132.0",
+ "@tanstack/router-plugin": "^1.132.0",
+ "katex": "^0.16.27",
+ "lucide-react": "^0.561.0",
+ "mermaid": "^11.12.2",
+ "nitro": "npm:nitro-nightly@latest",
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0",
+ "react-markdown": "^10.1.0",
+ "rehype-katex": "^7.0.1",
+ "rehype-raw": "^7.0.0",
+ "remark-gfm": "^4.0.1",
+ "remark-math": "^6.0.0",
+ "tailwindcss": "^4.0.6",
+ "vite-tsconfig-paths": "^6.0.2"
+ },
+ "devDependencies": {
+ "@playwright/test": "^1.58.0",
+ "@tailwindcss/typography": "^0.5.19",
+ "@tanstack/devtools-vite": "^0.3.11",
+ "@testing-library/dom": "^10.4.0",
+ "@testing-library/react": "^16.2.0",
+ "@types/node": "^22.10.2",
+ "@types/react": "^19.2.0",
+ "@types/react-dom": "^19.2.0",
+ "@vitejs/plugin-react": "^5.0.4",
+ "daisyui": "^5.5.14",
+ "dotenv": "^17.2.3",
+ "jsdom": "^27.0.0",
+ "serwist": "^9.0.11",
+ "typescript": "^5.7.2",
+ "vite": "^7.1.7",
+ "vitest": "^3.0.5",
+ "web-vitals": "^5.1.0"
+ }
+ },
+ "node_modules/@acemir/cssom": {
+ "version": "0.9.31",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@antfu/install-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz",
+ "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "package-manager-detector": "^1.3.0",
+ "tinyexec": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@antfu/install-pkg/node_modules/tinyexec": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz",
+ "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@asamuzakjp/css-color": {
+ "version": "4.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "lru-cache": "^11.2.4"
+ }
+ },
+ "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
+ "version": "11.2.4",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@asamuzakjp/dom-selector": {
+ "version": "6.7.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@asamuzakjp/nwsapi": "^2.3.9",
+ "bidi-js": "^1.0.3",
+ "css-tree": "^3.1.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "lru-cache": "^11.2.4"
+ }
+ },
+ "node_modules/@asamuzakjp/dom-selector/node_modules/css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": {
+ "version": "11.2.4",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@asamuzakjp/nwsapi": {
+ "version": "2.3.9",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz",
+ "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/generator": "^7.28.6",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/@babel/helpers": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
+ "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.6"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.27.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.27.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.28.6",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/generator": "^7.28.6",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.28.6",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz",
+ "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@braintree/sanitize-url": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz",
+ "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==",
+ "license": "MIT"
+ },
+ "node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/cst-dts-gen/node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "license": "MIT"
+ },
+ "node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/gast/node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "license": "MIT"
+ },
+ "node_modules/@chevrotain/regexp-to-ast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
+ "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.1.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-calc": {
+ "version": "2.1.4",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.1.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-syntax-patches-for-csstree": {
+ "version": "1.0.25",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@emnapi/core": {
+ "version": "1.8.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.8.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.1.0",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz",
+ "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz",
+ "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz",
+ "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz",
+ "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz",
+ "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz",
+ "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz",
+ "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz",
+ "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz",
+ "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz",
+ "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz",
+ "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz",
+ "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz",
+ "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz",
+ "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz",
+ "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz",
+ "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.27.2",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz",
+ "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz",
+ "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz",
+ "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz",
+ "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz",
+ "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz",
+ "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz",
+ "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz",
+ "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz",
+ "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@exodus/bytes": {
+ "version": "1.9.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "@noble/hashes": "^1.8.0 || ^2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@noble/hashes": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@iconify/types": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
+ "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
+ "license": "MIT"
+ },
+ "node_modules/@iconify/utils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz",
+ "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==",
+ "license": "MIT",
+ "dependencies": {
+ "@antfu/install-pkg": "^1.1.0",
+ "@iconify/types": "^2.0.0",
+ "mlly": "^1.8.0"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
+ "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@mermaid-js/parser": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz",
+ "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==",
+ "license": "MIT",
+ "dependencies": {
+ "langium": "3.3.1"
+ }
+ },
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "1.1.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1",
+ "@tybys/wasm-util": "^0.10.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ }
+ },
+ "node_modules/@oozcitak/dom": {
+ "version": "2.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "@oozcitak/infra": "^2.0.2",
+ "@oozcitak/url": "^3.0.0",
+ "@oozcitak/util": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=20.0"
+ }
+ },
+ "node_modules/@oozcitak/infra": {
+ "version": "2.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "@oozcitak/util": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=20.0"
+ }
+ },
+ "node_modules/@oozcitak/url": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "@oozcitak/infra": "^2.0.2",
+ "@oozcitak/util": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=20.0"
+ }
+ },
+ "node_modules/@oozcitak/util": {
+ "version": "10.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-android-arm-eabi": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-android-arm-eabi/-/binding-android-arm-eabi-0.108.0.tgz",
+ "integrity": "sha512-obfkLrlAv40lAE6C9eYameBKLpTJ/ToynpBbTwb+wSVg+HXYzLoFYy1M5V9/otjCnxxVpPdnHsOqw8aGCRT0WA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-android-arm64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-android-arm64/-/binding-android-arm64-0.108.0.tgz",
+ "integrity": "sha512-GmzLsdtrByBZ8+m482DpCkb4VgzgsDcOU7l5YU+OvSmBdaGFt1DrSXE2cMB93TjNF787+GzUQC30DoQaoYThxw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-darwin-arm64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-darwin-arm64/-/binding-darwin-arm64-0.108.0.tgz",
+ "integrity": "sha512-RTSj52lvWugvy6e8q7oUrJyELAmBJHi7oiJ/lBD720f3pZw29HCT+BYEdpfbYMBNqEcH9nSz/awahaYpSHXuAA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-darwin-x64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-darwin-x64/-/binding-darwin-x64-0.108.0.tgz",
+ "integrity": "sha512-PM+LdyCbjotBLE5DQuEm81fPrHmcmYvf5NnssZKG79o4LpXbKOQFOBRncNwq/+4y0nqRBeA1SROQ7ZuIZpeM/g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-freebsd-x64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-freebsd-x64/-/binding-freebsd-x64-0.108.0.tgz",
+ "integrity": "sha512-LyEK378Dm2XyUCE95dCev0Zas2wREa5sZvSiKx7wwFCCAyiHBlQ/OH0Fltvqco8BPspePNIvdKwmSOdPwyrJpw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-arm-gnueabihf": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.108.0.tgz",
+ "integrity": "sha512-6VAR1s32bTJld1Gam/b4P/5BHTkBxPpbYm4X1Y3qrVD6lUX4PeEbdttjtYdoPMCE3jjwhTjXOQfSnGepCW0Z2A==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-arm-musleabihf": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.108.0.tgz",
+ "integrity": "sha512-2sPMq8Hjrvbfgz/Nw23DfN9TrdVfjPEV1fXi8t7GqoIsRof0NKdb/HAvD9hKNR4lf37h3KB5m/8KCa7QRhbgWA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-arm64-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.108.0.tgz",
+ "integrity": "sha512-H+kR1SBBXdgGY02MRBlO2/diAy9CGcgODaPwyoPMGHUO3bZFjW6M+klqjJv+OxiQNup/s7yPNSZDPILQaNWnQw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-arm64-musl": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.108.0.tgz",
+ "integrity": "sha512-V/h1aI09INqmHHQaVKcBa51yLNBWXSCLLisuqohfAm+noRidBjkjudTEJsN/pCaYp7zTsc4NPG3RLkAD1q2Odg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-ppc64-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.108.0.tgz",
+ "integrity": "sha512-8zCLUptLgAlDYZURG3meARBBMNmFrWKyS2P6Na88nFSruxKbLk2Llt88v3dMYN3//EcDJF6uvKanWNvJB+rtHw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-riscv64-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.108.0.tgz",
+ "integrity": "sha512-YrgtK7o+SpEivjqIGi6DZDzpj7/IcA1xfkmOnUviSJ28EFMDnyZ42z6NZqGZBfTPnP936FQl8BUVBuebmeSuHw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-riscv64-musl": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.108.0.tgz",
+ "integrity": "sha512-CxTlaopJH6advoJ9btvF8GnyB13+HauNy/d8/TzHxyHE2Qxoq30BzmES+UXqECu4Tzqq6T9+8tPNx/qyzVPWvA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-s390x-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.108.0.tgz",
+ "integrity": "sha512-aiPv1zzXBEt0GmgjfdllGgb1hsQEFyQP3CWGXk11+fEGTkOPOkfnYtnnoJVBDavW30GSzI4ZUti7f1WriGvxDw==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-x64-gnu": {
+ "version": "0.108.0",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-linux-x64-musl": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-x64-musl/-/binding-linux-x64-musl-0.108.0.tgz",
+ "integrity": "sha512-KtrQg58yUd3TGc60tsy8cDOzMTwgtWAqLIagzxvyVb+6EpqbK5ajbqQ84nasL3Vh9BPZC0j/W+sCCzNO2iZBBg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-openharmony-arm64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-openharmony-arm64/-/binding-openharmony-arm64-0.108.0.tgz",
+ "integrity": "sha512-ap+1/J4Gu84ehhWMQIAjEHUtsEE5BEtw6cD+8cRZYI8GBdMaKjq7912UhzeBeqsQOoACdMOa/WNL3cHTPCBH7A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-wasm32-wasi": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-wasm32-wasi/-/binding-wasm32-wasi-0.108.0.tgz",
+ "integrity": "sha512-281FLKNYXhGbpM56Un8Mj56LQ8oVWq1xKtJFmmqRXaVLonM139gwGj8kgMyQeRYVbUKfeLCxQvtGtlBO5tHvHA==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@napi-rs/wasm-runtime": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-win32-arm64-msvc": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.108.0.tgz",
+ "integrity": "sha512-c0d6DWo5w0pQACcjF4w58FerqltPhE/dHW96rwte5GKSIIjxXRgB+kvkxjmbucOQMZoaKm1jL1xM2V6vgsBzug==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-win32-ia32-msvc": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.108.0.tgz",
+ "integrity": "sha512-MQeALwlG29Zs9aMs/5OAItDEiW0ZldZUIN1y/+R0dQY78faoitoa9BgVf0Myn2cQaiqjZTRbDOlIxUK2KwH6/Q==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-minify/binding-win32-x64-msvc": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.108.0.tgz",
+ "integrity": "sha512-qvlmddEfaW0oMEn9UrU/W8XhS9kVFDQtps+b1/ZJ7YPr9ToZz44Ouh7UPNz12F+nwUTt9urU15L+gtdM4SwfxA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-android-arm-eabi": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-android-arm-eabi/-/binding-android-arm-eabi-0.108.0.tgz",
+ "integrity": "sha512-lvIu578kM6558Ynz0+QyJCpAEwyqjU2RdB0ppyzCbN8wJRGTlDirr+THtETiq/hbRk/M5yhfAO2kro+70AvgAA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-android-arm64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-android-arm64/-/binding-android-arm64-0.108.0.tgz",
+ "integrity": "sha512-2mIcrNI1PMUuNvp7nJ7TGEcllJiC7qq7G1J/eCS4CRUGHLuaMuiqds79gSJBR9gG4UzzP7thWjws9goMq5UICQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-darwin-arm64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-darwin-arm64/-/binding-darwin-arm64-0.108.0.tgz",
+ "integrity": "sha512-09P6IRBoOYj9HZ8ZR1i60Gk274xeSW2HO8VmMGJbV+Z1HURiO1hn/z6iCDmWhVgz9I3F2vqXFfVk8IeWY+KN3g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-darwin-x64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-darwin-x64/-/binding-darwin-x64-0.108.0.tgz",
+ "integrity": "sha512-bVf2wNwpMP2PX3hRbm8C9gRhdKLiqUIpLhsVhtyHgNwd5G4FgPtNgdFJogIFJ/07E0uYC2F+ag+CoSD76lEI0Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-freebsd-x64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-freebsd-x64/-/binding-freebsd-x64-0.108.0.tgz",
+ "integrity": "sha512-BoP/itmIqHuZ4yOk6kSh1WAk7Muh/IykUVfBtH4D8ZZzcpiDNRndSKc+IISLDQ3AqtaAsl4A8DYa3S+SqEUJzQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-arm-gnueabihf": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.108.0.tgz",
+ "integrity": "sha512-KtPotqF+MsXBo81xwmuPCkK+N/jX8ZsjCKOH3s7p1XfQanwCGLRFHel06o5JjH1klIlrdA1R+8YoorKwKDAfmQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-arm-musleabihf": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.108.0.tgz",
+ "integrity": "sha512-Yf/lUkWqgRF8Ab1nqL1iAnrGP+IJO6H0k9c7Vnpg/fUfG5e8MOB+NPtWdbMMBUXTLPRWSh6Gmrr6rLnn2o7KWw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-arm64-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.108.0.tgz",
+ "integrity": "sha512-84hqyO4xdvy6WfYkiFdQLVQK9gchrZvL6OuWYGXjqHwDcUU2Ll9YodHC4sEkQagKX5FKJjjRZ1YYmEKgq6bpkg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-arm64-musl": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.108.0.tgz",
+ "integrity": "sha512-0utnCDANwZoJDAtwRyj5z0MLhzXPEr5p7pXf+Q/ef96ggwii2SVbSQdGge/+s/i4IWH3t3DbPGeIzXF7ab2gDw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-ppc64-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.108.0.tgz",
+ "integrity": "sha512-9s8muvWbTtxlvcwMZr643WXeAU5iRxKFxAeeHMwci952muR8AXaQvxTWeRyKUaKyjmtX/gCQSCTKL7ER0dx9Qw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-riscv64-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.108.0.tgz",
+ "integrity": "sha512-84EAYsC7oawGVTz6Gq7UzxOw9auZSAgqcT0itAI1k5m3k01ZJ5NNQyby16wmL6K1uetEz7t8vN0BWHhFPZAVBw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-riscv64-musl": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.108.0.tgz",
+ "integrity": "sha512-YsVyPd3/bHybHki5z06vToTB4MeiUgDOOQH+BNst462Mzim4gwyAG45k2XBJCR3vsDep04da7OtRQQoXe1mSqg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-s390x-gnu": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.108.0.tgz",
+ "integrity": "sha512-aW9bQpvKBShYRtoG561uO+6788eciMl6IN7yWiLqGEHxV8azIbx7EK0GgvWdKH52CJq2LrM/gcfoXRfOgCjRUA==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-x64-gnu": {
+ "version": "0.108.0",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-linux-x64-musl": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-x64-musl/-/binding-linux-x64-musl-0.108.0.tgz",
+ "integrity": "sha512-vPtmOmBvXCCB1ms68Ne8WoTv97mpDTDY2vgeT4E4NL5OFk9ZT6YVS6cXaJqCBHZNqljL5uIKuAF8gy6ywV1mUA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-openharmony-arm64": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-openharmony-arm64/-/binding-openharmony-arm64-0.108.0.tgz",
+ "integrity": "sha512-iWD38lrG1hQVMPjTAuxci+h8rr6xh17EfEQNiumnbiFjMmhWeMFTtyPyXwTpS6aPxf6Tcx/SUXHwRzKs+dKHDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-wasm32-wasi": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-wasm32-wasi/-/binding-wasm32-wasi-0.108.0.tgz",
+ "integrity": "sha512-lr+pGcVrKCoZWZi5bH+3LE5OZq1FJ7vbWgXhbK0MGT0LAOXzqtMFcpbsZR/CPYQCXl4xl1FcAtXan0lNFAt4bQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@napi-rs/wasm-runtime": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-win32-arm64-msvc": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.108.0.tgz",
+ "integrity": "sha512-R7X4Qbmq6TRWeEaxWpFx7n7n6t9rWcz9Q1hNOewxCBYNKXlH2Or5COPmKZGCuYByvN4TiDua5rudDgE6rf8RIA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-win32-ia32-msvc": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.108.0.tgz",
+ "integrity": "sha512-msSIfa3g/AX2zudSmjAskxG074MQd+YDzBNaeDs/+6192pfR/N+Adn/zCt4HOcNiqTbWmbikAM7B7pPFb5yr0A==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxc-transform/binding-win32-x64-msvc": {
+ "version": "0.108.0",
+ "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.108.0.tgz",
+ "integrity": "sha512-k+7tuCMULfB7zr57jb68sVzxbyleZBasyr1h1Ieiu1U95XHYe64pbSrwHmlaSmiNHqV91ikM3809+ps68jZZhw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@playwright/test": {
+ "version": "1.58.0",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.0.tgz",
+ "integrity": "sha512-fWza+Lpbj6SkQKCrU6si4iu+fD2dD3gxNHFhUPxsfXBPhnv3rRSQVd0NtBUT9Z/RhF/boCBcuUaMUSTRTopjZg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "playwright": "1.58.0"
+ },
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.40",
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz",
+ "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz",
+ "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz",
+ "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz",
+ "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz",
+ "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz",
+ "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz",
+ "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz",
+ "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz",
+ "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz",
+ "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz",
+ "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz",
+ "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz",
+ "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz",
+ "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz",
+ "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz",
+ "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz",
+ "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.55.1",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz",
+ "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz",
+ "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz",
+ "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz",
+ "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz",
+ "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz",
+ "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.55.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz",
+ "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@serwist/build": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/@serwist/build/-/build-9.5.0.tgz",
+ "integrity": "sha512-8D330WwYjBI5MadyVOphwUqJLMNQK76KWBoDykIPrbtt0C3uGFPxG4XNZCFXBkRG3O1QLedv9BWqH27SeqhcLg==",
+ "license": "MIT",
+ "dependencies": {
+ "@serwist/utils": "9.5.0",
+ "common-tags": "1.8.2",
+ "glob": "10.5.0",
+ "pretty-bytes": "6.1.1",
+ "source-map": "0.8.0-beta.0",
+ "zod": "4.3.5"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@serwist/build/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@serwist/build/node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/@serwist/build/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
+ "node_modules/@serwist/build/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@serwist/build/node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@serwist/build/node_modules/source-map": {
+ "version": "0.8.0-beta.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
+ "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
+ "deprecated": "The work that was done in this beta branch won't be included in future versions",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "whatwg-url": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@serwist/build/node_modules/tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/@serwist/build/node_modules/webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/@serwist/build/node_modules/whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "node_modules/@serwist/build/node_modules/zod": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz",
+ "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
+ "node_modules/@serwist/utils": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/@serwist/utils/-/utils-9.5.0.tgz",
+ "integrity": "sha512-DBzmJgL63/VYcQ/TpSYXW1FJKRILesOxytu+1MHY0vW2WFhW7pYkLgVuHqksP5K+3ypt54M3+2QNDDMixrnutQ==",
+ "license": "MIT"
+ },
+ "node_modules/@serwist/vite": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/@serwist/vite/-/vite-9.5.0.tgz",
+ "integrity": "sha512-zaoI/RYPDq1sdQO+ed/dm49/GwmdgYMElnw+dKDALJ8ig7fjfINWz8lP3j9OAI6T8PB/vbRZ09nihZjMKS/mLg==",
+ "license": "MIT",
+ "dependencies": {
+ "@serwist/build": "9.5.0",
+ "@serwist/utils": "9.5.0",
+ "glob": "10.5.0",
+ "kolorist": "1.8.0",
+ "serwist": "9.5.0",
+ "zod": "4.3.5"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.0",
+ "vite": ">=5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@serwist/vite/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@serwist/vite/node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/@serwist/vite/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
+ "node_modules/@serwist/vite/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@serwist/vite/node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@serwist/vite/node_modules/zod": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz",
+ "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
+ "node_modules/@serwist/window": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/@serwist/window/-/window-9.5.0.tgz",
+ "integrity": "sha512-WqmEZjJ+u841sbUJh2LAbtPNrz8mU/wCTo9sEVqsMOk+EM5oBz5FRpF3kDzx1cF5rTIfXer1df0D354lIdFw1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/trusted-types": "2.0.7",
+ "serwist": "9.5.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@solid-primitives/event-listener": {
+ "version": "2.4.3",
+ "license": "MIT",
+ "dependencies": {
+ "@solid-primitives/utils": "^6.3.2"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.6.12"
+ }
+ },
+ "node_modules/@solid-primitives/keyboard": {
+ "version": "1.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "@solid-primitives/event-listener": "^2.4.3",
+ "@solid-primitives/rootless": "^1.5.2",
+ "@solid-primitives/utils": "^6.3.2"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.6.12"
+ }
+ },
+ "node_modules/@solid-primitives/resize-observer": {
+ "version": "2.1.3",
+ "license": "MIT",
+ "dependencies": {
+ "@solid-primitives/event-listener": "^2.4.3",
+ "@solid-primitives/rootless": "^1.5.2",
+ "@solid-primitives/static-store": "^0.1.2",
+ "@solid-primitives/utils": "^6.3.2"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.6.12"
+ }
+ },
+ "node_modules/@solid-primitives/rootless": {
+ "version": "1.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "@solid-primitives/utils": "^6.3.2"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.6.12"
+ }
+ },
+ "node_modules/@solid-primitives/static-store": {
+ "version": "0.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "@solid-primitives/utils": "^6.3.2"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.6.12"
+ }
+ },
+ "node_modules/@solid-primitives/utils": {
+ "version": "6.3.2",
+ "license": "MIT",
+ "peerDependencies": {
+ "solid-js": "^1.6.12"
+ }
+ },
+ "node_modules/@tailwindcss/node": {
+ "version": "4.1.18",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.4",
+ "enhanced-resolve": "^5.18.3",
+ "jiti": "^2.6.1",
+ "lightningcss": "1.30.2",
+ "magic-string": "^0.30.21",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.1.18"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.1.18",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.1.18",
+ "@tailwindcss/oxide-darwin-arm64": "4.1.18",
+ "@tailwindcss/oxide-darwin-x64": "4.1.18",
+ "@tailwindcss/oxide-freebsd-x64": "4.1.18",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.1.18",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.1.18",
+ "@tailwindcss/oxide-linux-x64-musl": "4.1.18",
+ "@tailwindcss/oxide-wasm32-wasi": "4.1.18",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.1.18"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz",
+ "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz",
+ "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz",
+ "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz",
+ "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz",
+ "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz",
+ "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz",
+ "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.1.18",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz",
+ "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz",
+ "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==",
+ "bundleDependencies": [
+ "@napi-rs/wasm-runtime",
+ "@emnapi/core",
+ "@emnapi/runtime",
+ "@tybys/wasm-util",
+ "@emnapi/wasi-threads",
+ "tslib"
+ ],
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1",
+ "@emnapi/wasi-threads": "^1.1.0",
+ "@napi-rs/wasm-runtime": "^1.1.0",
+ "@tybys/wasm-util": "^0.10.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz",
+ "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz",
+ "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/typography": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz",
+ "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "6.0.10"
+ },
+ "peerDependencies": {
+ "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
+ }
+ },
+ "node_modules/@tailwindcss/vite": {
+ "version": "4.1.18",
+ "license": "MIT",
+ "dependencies": {
+ "@tailwindcss/node": "4.1.18",
+ "@tailwindcss/oxide": "4.1.18",
+ "tailwindcss": "4.1.18"
+ },
+ "peerDependencies": {
+ "vite": "^5.2.0 || ^6 || ^7"
+ }
+ },
+ "node_modules/@tanstack/devtools": {
+ "version": "0.7.0",
+ "license": "MIT",
+ "dependencies": {
+ "@solid-primitives/event-listener": "^2.4.3",
+ "@solid-primitives/keyboard": "^1.3.3",
+ "@solid-primitives/resize-observer": "^2.1.3",
+ "@tanstack/devtools-client": "0.0.3",
+ "@tanstack/devtools-event-bus": "0.3.3",
+ "@tanstack/devtools-ui": "0.4.4",
+ "clsx": "^2.1.1",
+ "goober": "^2.1.16",
+ "solid-js": "^1.9.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "solid-js": ">=1.9.7"
+ }
+ },
+ "node_modules/@tanstack/devtools-client": {
+ "version": "0.0.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/devtools-event-client": "^0.4.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/devtools-event-bus": {
+ "version": "0.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "ws": "^8.18.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/devtools-event-client": {
+ "version": "0.4.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/devtools-ui": {
+ "version": "0.4.4",
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.1.1",
+ "goober": "^2.1.16",
+ "solid-js": "^1.9.9"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "solid-js": ">=1.9.7"
+ }
+ },
+ "node_modules/@tanstack/devtools-vite": {
+ "version": "0.3.12",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.4",
+ "@babel/generator": "^7.28.3",
+ "@babel/parser": "^7.28.4",
+ "@babel/traverse": "^7.28.4",
+ "@babel/types": "^7.28.4",
+ "@tanstack/devtools-client": "0.0.5",
+ "@tanstack/devtools-event-bus": "0.3.3",
+ "chalk": "^5.6.2",
+ "launch-editor": "^2.11.1",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "vite": "^6.0.0 || ^7.0.0"
+ }
+ },
+ "node_modules/@tanstack/devtools/node_modules/@tanstack/devtools-client": {
+ "version": "0.0.3",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/devtools-event-client": "^0.3.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/devtools/node_modules/@tanstack/devtools-event-client": {
+ "version": "0.3.5",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/history": {
+ "version": "1.151.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/query-core": {
+ "version": "5.90.19",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/react-devtools": {
+ "version": "0.7.11",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/devtools": "0.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "@types/react": ">=16.8",
+ "@types/react-dom": ">=16.8",
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
+ "node_modules/@tanstack/react-query": {
+ "version": "5.90.19",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@tanstack/query-core": "5.90.19"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19"
+ }
+ },
+ "node_modules/@tanstack/react-router": {
+ "version": "1.151.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.151.6.tgz",
+ "integrity": "sha512-KDbz7kacZCOoDrUwYljz4I/qjqVGq+bgUhpi/CWubi7by0GZ3JEECwFl/+k+4V6ATinJDjTNmCGwFcdwqjQDtA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@tanstack/history": "1.151.1",
+ "@tanstack/react-store": "^0.8.0",
+ "@tanstack/router-core": "1.151.6",
+ "isbot": "^5.1.22",
+ "tiny-invariant": "^1.3.3",
+ "tiny-warning": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": ">=18.0.0 || >=19.0.0",
+ "react-dom": ">=18.0.0 || >=19.0.0"
+ }
+ },
+ "node_modules/@tanstack/react-router-devtools": {
+ "version": "1.151.6",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/router-devtools-core": "1.151.6"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "@tanstack/react-router": "^1.151.6",
+ "@tanstack/router-core": "^1.151.6",
+ "react": ">=18.0.0 || >=19.0.0",
+ "react-dom": ">=18.0.0 || >=19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@tanstack/router-core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tanstack/react-router-ssr-query": {
+ "version": "1.151.6",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/router-ssr-query-core": "1.151.6"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "@tanstack/query-core": ">=5.90.0",
+ "@tanstack/react-query": ">=5.90.0",
+ "@tanstack/react-router": ">=1.127.0",
+ "react": ">=18.0.0 || >=19.0.0",
+ "react-dom": ">=18.0.0 || >=19.0.0"
+ }
+ },
+ "node_modules/@tanstack/react-start": {
+ "version": "1.152.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/react-router": "1.151.6",
+ "@tanstack/react-start-client": "1.152.0",
+ "@tanstack/react-start-server": "1.152.0",
+ "@tanstack/router-utils": "^1.143.11",
+ "@tanstack/start-client-core": "1.152.0",
+ "@tanstack/start-plugin-core": "1.152.0",
+ "@tanstack/start-server-core": "1.152.0",
+ "pathe": "^2.0.3"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": ">=18.0.0 || >=19.0.0",
+ "react-dom": ">=18.0.0 || >=19.0.0",
+ "vite": ">=7.0.0"
+ }
+ },
+ "node_modules/@tanstack/react-start-client": {
+ "version": "1.152.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/react-router": "1.151.6",
+ "@tanstack/router-core": "1.151.6",
+ "@tanstack/start-client-core": "1.152.0",
+ "tiny-invariant": "^1.3.3",
+ "tiny-warning": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": ">=18.0.0 || >=19.0.0",
+ "react-dom": ">=18.0.0 || >=19.0.0"
+ }
+ },
+ "node_modules/@tanstack/react-start-server": {
+ "version": "1.152.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/history": "1.151.1",
+ "@tanstack/react-router": "1.151.6",
+ "@tanstack/router-core": "1.151.6",
+ "@tanstack/start-client-core": "1.152.0",
+ "@tanstack/start-server-core": "1.152.0"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": ">=18.0.0 || >=19.0.0",
+ "react-dom": ">=18.0.0 || >=19.0.0"
+ }
+ },
+ "node_modules/@tanstack/react-store": {
+ "version": "0.8.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/store": "0.8.0",
+ "use-sync-external-store": "^1.6.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/@tanstack/router-core": {
+ "version": "1.151.6",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@tanstack/history": "1.151.1",
+ "@tanstack/store": "^0.8.0",
+ "cookie-es": "^2.0.0",
+ "seroval": "^1.4.1",
+ "seroval-plugins": "^1.4.0",
+ "tiny-invariant": "^1.3.3",
+ "tiny-warning": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/router-devtools-core": {
+ "version": "1.151.6",
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.1.1",
+ "goober": "^2.1.16",
+ "tiny-invariant": "^1.3.3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "@tanstack/router-core": "^1.151.6",
+ "csstype": "^3.0.10"
+ },
+ "peerDependenciesMeta": {
+ "csstype": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tanstack/router-generator": {
+ "version": "1.151.6",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/router-core": "1.151.6",
+ "@tanstack/router-utils": "1.143.11",
+ "@tanstack/virtual-file-routes": "1.145.4",
+ "prettier": "^3.5.0",
+ "recast": "^0.23.11",
+ "source-map": "^0.7.4",
+ "tsx": "^4.19.2",
+ "zod": "^3.24.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/router-plugin": {
+ "version": "1.151.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/router-plugin/-/router-plugin-1.151.6.tgz",
+ "integrity": "sha512-Kz9wmAgcylung1KoXvEEVTW91PNh4U65MgVwSmz5fYQP7UqNHPvHqBFWKEu17a45SfZ4LufsNW3LTFT35tWGXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.5",
+ "@babel/plugin-syntax-jsx": "^7.27.1",
+ "@babel/plugin-syntax-typescript": "^7.27.1",
+ "@babel/template": "^7.27.2",
+ "@babel/traverse": "^7.28.5",
+ "@babel/types": "^7.28.5",
+ "@tanstack/router-core": "1.151.6",
+ "@tanstack/router-generator": "1.151.6",
+ "@tanstack/router-utils": "1.143.11",
+ "@tanstack/virtual-file-routes": "1.145.4",
+ "babel-dead-code-elimination": "^1.0.11",
+ "chokidar": "^3.6.0",
+ "unplugin": "^2.1.2",
+ "zod": "^3.24.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "@rsbuild/core": ">=1.0.2",
+ "@tanstack/react-router": "^1.151.6",
+ "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0",
+ "vite-plugin-solid": "^2.11.10",
+ "webpack": ">=5.92.0"
+ },
+ "peerDependenciesMeta": {
+ "@rsbuild/core": {
+ "optional": true
+ },
+ "@tanstack/react-router": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ },
+ "vite-plugin-solid": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tanstack/router-ssr-query-core": {
+ "version": "1.151.6",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "@tanstack/query-core": ">=5.90.0",
+ "@tanstack/router-core": ">=1.127.0"
+ }
+ },
+ "node_modules/@tanstack/router-utils": {
+ "version": "1.143.11",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.5",
+ "@babel/generator": "^7.28.5",
+ "@babel/parser": "^7.28.5",
+ "ansis": "^4.1.0",
+ "diff": "^8.0.2",
+ "pathe": "^2.0.3",
+ "tinyglobby": "^0.2.15"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/start-client-core": {
+ "version": "1.152.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/router-core": "1.151.6",
+ "@tanstack/start-fn-stubs": "1.151.3",
+ "@tanstack/start-storage-context": "1.151.6",
+ "seroval": "^1.4.1",
+ "tiny-invariant": "^1.3.3",
+ "tiny-warning": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/start-fn-stubs": {
+ "version": "1.151.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/start-plugin-core": {
+ "version": "1.152.0",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "7.27.1",
+ "@babel/core": "^7.28.5",
+ "@babel/types": "^7.28.5",
+ "@rolldown/pluginutils": "1.0.0-beta.40",
+ "@tanstack/router-core": "1.151.6",
+ "@tanstack/router-generator": "1.151.6",
+ "@tanstack/router-plugin": "1.151.6",
+ "@tanstack/router-utils": "1.143.11",
+ "@tanstack/start-client-core": "1.152.0",
+ "@tanstack/start-server-core": "1.152.0",
+ "babel-dead-code-elimination": "^1.0.11",
+ "cheerio": "^1.0.0",
+ "exsolve": "^1.0.7",
+ "pathe": "^2.0.3",
+ "srvx": "^0.10.0",
+ "tinyglobby": "^0.2.15",
+ "ufo": "^1.5.4",
+ "vitefu": "^1.1.1",
+ "xmlbuilder2": "^4.0.3",
+ "zod": "^3.24.2"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "vite": ">=7.0.0"
+ }
+ },
+ "node_modules/@tanstack/start-plugin-core/node_modules/@babel/code-frame": {
+ "version": "7.27.1",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@tanstack/start-server-core": {
+ "version": "1.152.0",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/history": "1.151.1",
+ "@tanstack/router-core": "1.151.6",
+ "@tanstack/start-client-core": "1.152.0",
+ "@tanstack/start-storage-context": "1.151.6",
+ "h3-v2": "npm:h3@2.0.1-rc.7",
+ "seroval": "^1.4.1",
+ "tiny-invariant": "^1.3.3"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/start-storage-context": {
+ "version": "1.151.6",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/router-core": "1.151.6"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/store": {
+ "version": "0.8.0",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/virtual-file-routes": {
+ "version": "1.145.4",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@testing-library/dom": {
+ "version": "10.4.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/runtime": "^7.12.5",
+ "@types/aria-query": "^5.0.1",
+ "aria-query": "5.3.0",
+ "dom-accessibility-api": "^0.5.9",
+ "lz-string": "^1.5.0",
+ "picocolors": "1.1.1",
+ "pretty-format": "^27.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@testing-library/dom/node_modules/aria-query": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/@testing-library/react": {
+ "version": "16.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@testing-library/dom": "^10.0.0",
+ "@types/react": "^18.0.0 || ^19.0.0",
+ "@types/react-dom": "^18.0.0 || ^19.0.0",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@types/aria-query": {
+ "version": "5.0.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/chai": {
+ "version": "5.2.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/deep-eql": "*",
+ "assertion-error": "^2.0.1"
+ }
+ },
+ "node_modules/@types/d3": {
+ "version": "7.4.3",
+ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
+ "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/d3-axis": "*",
+ "@types/d3-brush": "*",
+ "@types/d3-chord": "*",
+ "@types/d3-color": "*",
+ "@types/d3-contour": "*",
+ "@types/d3-delaunay": "*",
+ "@types/d3-dispatch": "*",
+ "@types/d3-drag": "*",
+ "@types/d3-dsv": "*",
+ "@types/d3-ease": "*",
+ "@types/d3-fetch": "*",
+ "@types/d3-force": "*",
+ "@types/d3-format": "*",
+ "@types/d3-geo": "*",
+ "@types/d3-hierarchy": "*",
+ "@types/d3-interpolate": "*",
+ "@types/d3-path": "*",
+ "@types/d3-polygon": "*",
+ "@types/d3-quadtree": "*",
+ "@types/d3-random": "*",
+ "@types/d3-scale": "*",
+ "@types/d3-scale-chromatic": "*",
+ "@types/d3-selection": "*",
+ "@types/d3-shape": "*",
+ "@types/d3-time": "*",
+ "@types/d3-time-format": "*",
+ "@types/d3-timer": "*",
+ "@types/d3-transition": "*",
+ "@types/d3-zoom": "*"
+ }
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz",
+ "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-axis": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
+ "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-brush": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
+ "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-chord": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
+ "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-contour": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
+ "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-delaunay": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-dispatch": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz",
+ "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-drag": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
+ "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-dsv": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
+ "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-fetch": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
+ "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-dsv": "*"
+ }
+ },
+ "node_modules/@types/d3-force": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
+ "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-format": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
+ "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-geo": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
+ "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-hierarchy": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
+ "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-polygon": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
+ "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-quadtree": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
+ "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-random": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
+ "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-selection": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
+ "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz",
+ "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-time-format": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
+ "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-transition": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
+ "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-zoom": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
+ "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-interpolate": "*",
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/deep-eql": {
+ "version": "4.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "license": "MIT"
+ },
+ "node_modules/@types/estree-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/geojson": {
+ "version": "7946.0.16",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
+ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/katex": {
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz",
+ "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/ms": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.19.7",
+ "devOptional": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/react": {
+ "version": "19.2.8",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.2.3",
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "@types/react": "^19.2.0"
+ }
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "license": "ISC"
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.5",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.53",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.18.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-react/node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.53",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vitest/expect": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/chai": "^5.2.2",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/mocker": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "3.2.4",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.17"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "msw": "^2.4.9",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vitest/pretty-format": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "3.2.4",
+ "pathe": "^2.0.3",
+ "strip-literal": "^3.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "3.2.4",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyspy": "^4.0.3"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "3.2.4",
+ "loupe": "^3.1.4",
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.15.0",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/ansis": {
+ "version": "4.2.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "license": "Python-2.0"
+ },
+ "node_modules/assertion-error": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/ast-types": {
+ "version": "0.16.1",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/babel-dead-code-elimination": {
+ "version": "1.0.12",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.23.7",
+ "@babel/parser": "^7.23.6",
+ "@babel/traverse": "^7.23.7",
+ "@babel/types": "^7.23.6"
+ }
+ },
+ "node_modules/bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.9.15",
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/bidi-js": {
+ "version": "1.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "require-from-string": "^2.0.2"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "license": "ISC"
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/browserslist/node_modules/caniuse-lite": {
+ "version": "1.0.30001766",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz",
+ "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/chai": {
+ "version": "5.3.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "5.6.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "2.1.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ }
+ },
+ "node_modules/cheerio": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.2.2",
+ "encoding-sniffer": "^0.2.1",
+ "htmlparser2": "^10.0.0",
+ "parse5": "^7.3.0",
+ "parse5-htmlparser2-tree-adapter": "^7.1.0",
+ "parse5-parser-stream": "^7.1.2",
+ "undici": "^7.12.0",
+ "whatwg-mimetype": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=20.18.1"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash-es": "^4.17.21"
+ },
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
+ "node_modules/chevrotain/node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "license": "MIT"
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/common-tags": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
+ "license": "MIT"
+ },
+ "node_modules/consola": {
+ "version": "3.4.2",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/cookie-es": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/cose-base": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz",
+ "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==",
+ "license": "MIT",
+ "dependencies": {
+ "layout-base": "^1.0.0"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crossws": {
+ "version": "0.4.1",
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "srvx": ">=0.7.1"
+ },
+ "peerDependenciesMeta": {
+ "srvx": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-select": {
+ "version": "5.2.2",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.2.2",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssstyle": {
+ "version": "5.3.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@asamuzakjp/css-color": "^4.1.1",
+ "@csstools/css-syntax-patches-for-csstree": "^1.0.21",
+ "css-tree": "^3.1.0",
+ "lru-cache": "^11.2.4"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cssstyle/node_modules/css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/cssstyle/node_modules/lru-cache": {
+ "version": "11.2.4",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/cytoscape": {
+ "version": "3.33.1",
+ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz",
+ "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/cytoscape-cose-bilkent": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz",
+ "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cose-base": "^1.0.0"
+ },
+ "peerDependencies": {
+ "cytoscape": "^3.2.0"
+ }
+ },
+ "node_modules/cytoscape-fcose": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz",
+ "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cose-base": "^2.2.0"
+ },
+ "peerDependencies": {
+ "cytoscape": "^3.2.0"
+ }
+ },
+ "node_modules/cytoscape-fcose/node_modules/cose-base": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz",
+ "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==",
+ "license": "MIT",
+ "dependencies": {
+ "layout-base": "^2.0.0"
+ }
+ },
+ "node_modules/cytoscape-fcose/node_modules/layout-base": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz",
+ "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==",
+ "license": "MIT"
+ },
+ "node_modules/d3": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
+ "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "3",
+ "d3-axis": "3",
+ "d3-brush": "3",
+ "d3-chord": "3",
+ "d3-color": "3",
+ "d3-contour": "4",
+ "d3-delaunay": "6",
+ "d3-dispatch": "3",
+ "d3-drag": "3",
+ "d3-dsv": "3",
+ "d3-ease": "3",
+ "d3-fetch": "3",
+ "d3-force": "3",
+ "d3-format": "3",
+ "d3-geo": "3",
+ "d3-hierarchy": "3",
+ "d3-interpolate": "3",
+ "d3-path": "3",
+ "d3-polygon": "3",
+ "d3-quadtree": "3",
+ "d3-random": "3",
+ "d3-scale": "4",
+ "d3-scale-chromatic": "3",
+ "d3-selection": "3",
+ "d3-shape": "3",
+ "d3-time": "3",
+ "d3-time-format": "4",
+ "d3-timer": "3",
+ "d3-transition": "3",
+ "d3-zoom": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-axis": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
+ "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-brush": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
+ "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "3",
+ "d3-transition": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-chord": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
+ "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-contour": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
+ "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-delaunay": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
+ "license": "ISC",
+ "dependencies": {
+ "delaunator": "5"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dispatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-drag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
+ "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-selection": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "7",
+ "iconv-lite": "0.6",
+ "rw": "1"
+ },
+ "bin": {
+ "csv2json": "bin/dsv2json.js",
+ "csv2tsv": "bin/dsv2dsv.js",
+ "dsv2dsv": "bin/dsv2dsv.js",
+ "dsv2json": "bin/dsv2json.js",
+ "json2csv": "bin/json2dsv.js",
+ "json2dsv": "bin/json2dsv.js",
+ "json2tsv": "bin/json2dsv.js",
+ "tsv2csv": "bin/dsv2dsv.js",
+ "tsv2json": "bin/dsv2json.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-fetch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dsv": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-force": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz",
+ "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-geo": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.5.0 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-hierarchy": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-polygon": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
+ "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-quadtree": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-random": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-sankey": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
+ "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-array": "1 - 2",
+ "d3-shape": "^1.2.0"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/d3-array": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
+ "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "internmap": "^1.0.0"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/d3-path": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
+ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/d3-sankey/node_modules/d3-shape": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
+ "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-path": "1"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/internmap": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
+ "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",
+ "license": "ISC"
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-interpolate": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-selection": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
+ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
+ "license": "ISC",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-transition": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
+ "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-dispatch": "1 - 3",
+ "d3-ease": "1 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "d3-selection": "2 - 3"
+ }
+ },
+ "node_modules/d3-zoom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
+ "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "2 - 3",
+ "d3-transition": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/dagre-d3-es": {
+ "version": "7.0.13",
+ "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz",
+ "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "d3": "^7.9.0",
+ "lodash-es": "^4.17.21"
+ }
+ },
+ "node_modules/daisyui": {
+ "version": "5.5.14",
+ "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.5.14.tgz",
+ "integrity": "sha512-L47rvw7I7hK68TA97VB8Ee0woHew+/ohR6Lx6Ah/krfISOqcG4My7poNpX5Mo5/ytMxiR40fEaz6njzDi7cuSg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/saadeghi/daisyui?sponsor=1"
+ }
+ },
+ "node_modules/data-urls": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^15.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.19",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
+ "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
+ "license": "MIT"
+ },
+ "node_modules/db0": {
+ "version": "0.3.4",
+ "license": "MIT",
+ "peer": true,
+ "peerDependencies": {
+ "@electric-sql/pglite": "*",
+ "@libsql/client": "*",
+ "better-sqlite3": "*",
+ "drizzle-orm": "*",
+ "mysql2": "*",
+ "sqlite3": "*"
+ },
+ "peerDependenciesMeta": {
+ "@electric-sql/pglite": {
+ "optional": true
+ },
+ "@libsql/client": {
+ "optional": true
+ },
+ "better-sqlite3": {
+ "optional": true
+ },
+ "drizzle-orm": {
+ "optional": true
+ },
+ "mysql2": {
+ "optional": true
+ },
+ "sqlite3": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.6.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/decode-named-character-reference": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz",
+ "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/deep-eql": {
+ "version": "5.0.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/delaunator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
+ "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
+ "license": "ISC",
+ "dependencies": {
+ "robust-predicates": "^3.0.2"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/diff": {
+ "version": "8.0.3",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/dom-accessibility-api": {
+ "version": "0.5.16",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/dompurify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz",
+ "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==",
+ "license": "(MPL-2.0 OR Apache-2.0)",
+ "optionalDependencies": {
+ "@types/trusted-types": "^2.0.7"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.2.2",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "17.2.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz",
+ "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.267",
+ "license": "ISC"
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "license": "MIT"
+ },
+ "node_modules/encoding-sniffer": {
+ "version": "0.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "^0.6.3",
+ "whatwg-encoding": "^3.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.18.4",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/esbuild": {
+ "version": "0.27.2",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.27.2",
+ "@esbuild/android-arm": "0.27.2",
+ "@esbuild/android-arm64": "0.27.2",
+ "@esbuild/android-x64": "0.27.2",
+ "@esbuild/darwin-arm64": "0.27.2",
+ "@esbuild/darwin-x64": "0.27.2",
+ "@esbuild/freebsd-arm64": "0.27.2",
+ "@esbuild/freebsd-x64": "0.27.2",
+ "@esbuild/linux-arm": "0.27.2",
+ "@esbuild/linux-arm64": "0.27.2",
+ "@esbuild/linux-ia32": "0.27.2",
+ "@esbuild/linux-loong64": "0.27.2",
+ "@esbuild/linux-mips64el": "0.27.2",
+ "@esbuild/linux-ppc64": "0.27.2",
+ "@esbuild/linux-riscv64": "0.27.2",
+ "@esbuild/linux-s390x": "0.27.2",
+ "@esbuild/linux-x64": "0.27.2",
+ "@esbuild/netbsd-arm64": "0.27.2",
+ "@esbuild/netbsd-x64": "0.27.2",
+ "@esbuild/openbsd-arm64": "0.27.2",
+ "@esbuild/openbsd-x64": "0.27.2",
+ "@esbuild/openharmony-arm64": "0.27.2",
+ "@esbuild/sunos-x64": "0.27.2",
+ "@esbuild/win32-arm64": "0.27.2",
+ "@esbuild/win32-ia32": "0.27.2",
+ "@esbuild/win32-x64": "0.27.2"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/estree-util-is-identifier-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
+ "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/expect-type": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/exsolve": {
+ "version": "1.0.8",
+ "license": "MIT"
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-tsconfig": {
+ "version": "4.13.0",
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/globrex": {
+ "version": "0.1.2",
+ "license": "MIT"
+ },
+ "node_modules/goober": {
+ "version": "2.1.18",
+ "license": "MIT",
+ "peerDependencies": {
+ "csstype": "^3.0.10"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "license": "ISC"
+ },
+ "node_modules/h3": {
+ "version": "2.0.1-rc.8",
+ "license": "MIT",
+ "dependencies": {
+ "rou3": "^0.7.12",
+ "srvx": "^0.10.0"
+ },
+ "engines": {
+ "node": ">=20.11.1"
+ },
+ "peerDependencies": {
+ "crossws": "^0.4.1"
+ },
+ "peerDependenciesMeta": {
+ "crossws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/h3-v2": {
+ "name": "h3",
+ "version": "2.0.1-rc.7",
+ "license": "MIT",
+ "dependencies": {
+ "rou3": "^0.7.12",
+ "srvx": "^0.10.0"
+ },
+ "engines": {
+ "node": ">=20.11.1"
+ },
+ "peerDependencies": {
+ "crossws": "^0.4.1"
+ },
+ "peerDependenciesMeta": {
+ "crossws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/hachure-fill": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz",
+ "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-from-dom": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz",
+ "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==",
+ "license": "ISC",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hastscript": "^9.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
+ "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "devlop": "^1.1.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "parse5": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html-isomorphic": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz",
+ "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-from-dom": "^5.0.0",
+ "hast-util-from-html": "^2.0.0",
+ "unist-util-remove-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz",
+ "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "hastscript": "^9.0.0",
+ "property-information": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-is-element": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
+ "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+ "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
+ "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "hast-util-to-parse5": "^8.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "parse5": "^7.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
+ "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-js": "^1.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz",
+ "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-text": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz",
+ "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "hast-util-is-element": "^3.0.0",
+ "unist-util-find-after": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
+ "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^4.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/html-encoding-sniffer": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@exodus/bytes": "^1.6.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ }
+ },
+ "node_modules/html-url-attributes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
+ "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/html-void-elements": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
+ "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "10.0.0",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.2.1",
+ "entities": "^6.0.0"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "6.0.1",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inline-style-parser": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz",
+ "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==",
+ "license": "MIT"
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/isbot": {
+ "version": "5.1.32",
+ "license": "Unlicense",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/jiti": {
+ "version": "2.6.1",
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsdom": {
+ "version": "27.4.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz",
+ "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@acemir/cssom": "^0.9.28",
+ "@asamuzakjp/dom-selector": "^6.7.6",
+ "@exodus/bytes": "^1.6.0",
+ "cssstyle": "^5.3.4",
+ "data-urls": "^6.0.0",
+ "decimal.js": "^10.6.0",
+ "html-encoding-sniffer": "^6.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.6",
+ "is-potential-custom-element-name": "^1.0.1",
+ "parse5": "^8.0.0",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^6.0.0",
+ "w3c-xmlserializer": "^5.0.0",
+ "webidl-conversions": "^8.0.0",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^15.1.0",
+ "ws": "^8.18.3",
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "canvas": "^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsdom/node_modules/entities": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/jsdom/node_modules/parse5": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/katex": {
+ "version": "0.16.27",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz",
+ "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==",
+ "funding": [
+ "https://opencollective.com/katex",
+ "https://github.com/sponsors/katex"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^8.3.0"
+ },
+ "bin": {
+ "katex": "cli.js"
+ }
+ },
+ "node_modules/khroma": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz",
+ "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="
+ },
+ "node_modules/kolorist": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
+ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "license": "MIT"
+ },
+ "node_modules/langium": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz",
+ "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==",
+ "license": "MIT",
+ "dependencies": {
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/launch-editor": {
+ "version": "2.12.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^1.1.1",
+ "shell-quote": "^1.8.3"
+ }
+ },
+ "node_modules/layout-base": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
+ "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==",
+ "license": "MIT"
+ },
+ "node_modules/lightningcss": {
+ "version": "1.30.2",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.30.2",
+ "lightningcss-darwin-arm64": "1.30.2",
+ "lightningcss-darwin-x64": "1.30.2",
+ "lightningcss-freebsd-x64": "1.30.2",
+ "lightningcss-linux-arm-gnueabihf": "1.30.2",
+ "lightningcss-linux-arm64-gnu": "1.30.2",
+ "lightningcss-linux-arm64-musl": "1.30.2",
+ "lightningcss-linux-x64-gnu": "1.30.2",
+ "lightningcss-linux-x64-musl": "1.30.2",
+ "lightningcss-win32-arm64-msvc": "1.30.2",
+ "lightningcss-win32-x64-msvc": "1.30.2"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz",
+ "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz",
+ "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz",
+ "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz",
+ "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz",
+ "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz",
+ "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz",
+ "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.30.2",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz",
+ "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz",
+ "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz",
+ "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lodash-es": {
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz",
+ "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
+ "license": "MIT"
+ },
+ "node_modules/longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/loupe": {
+ "version": "3.2.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/lucide-react": {
+ "version": "0.561.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.561.0.tgz",
+ "integrity": "sha512-Y59gMY38tl4/i0qewcqohPdEbieBy7SovpBL9IFebhc2mDd8x4PZSOsiFRkpPcOq6bj1r/mjH/Rk73gSlIJP2A==",
+ "license": "ISC",
+ "peerDependencies": {
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/lz-string": {
+ "version": "1.5.0",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "lz-string": "bin/bin.js"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.21",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/markdown-table": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/marked": {
+ "version": "16.4.2",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz",
+ "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==",
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/mdast-util-find-and-replace": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
+ "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-from-markdown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
+ "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
+ "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
+ "mdast-util-gfm-footnote": "^2.0.0",
+ "mdast-util-gfm-strikethrough": "^2.0.0",
+ "mdast-util-gfm-table": "^2.0.0",
+ "mdast-util-gfm-task-list-item": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-autolink-literal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "micromark-util-character": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-strikethrough": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-task-list-item": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-math": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
+ "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.1.0",
+ "unist-util-remove-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-expression": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
+ "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
+ "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/mermaid": {
+ "version": "11.12.2",
+ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz",
+ "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==",
+ "license": "MIT",
+ "dependencies": {
+ "@braintree/sanitize-url": "^7.1.1",
+ "@iconify/utils": "^3.0.1",
+ "@mermaid-js/parser": "^0.6.3",
+ "@types/d3": "^7.4.3",
+ "cytoscape": "^3.29.3",
+ "cytoscape-cose-bilkent": "^4.1.0",
+ "cytoscape-fcose": "^2.2.0",
+ "d3": "^7.9.0",
+ "d3-sankey": "^0.12.3",
+ "dagre-d3-es": "7.0.13",
+ "dayjs": "^1.11.18",
+ "dompurify": "^3.2.5",
+ "katex": "^0.16.22",
+ "khroma": "^2.1.0",
+ "lodash-es": "^4.17.21",
+ "marked": "^16.2.1",
+ "roughjs": "^4.6.6",
+ "stylis": "^4.3.6",
+ "ts-dedent": "^2.2.0",
+ "uuid": "^11.1.0"
+ }
+ },
+ "node_modules/micromark": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
+ "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
+ "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
+ "micromark-extension-gfm-footnote": "^2.0.0",
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
+ "micromark-extension-gfm-table": "^2.0.0",
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-autolink-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-strikethrough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
+ "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-tagfilter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-math": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
+ "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/katex": "^0.16.0",
+ "devlop": "^1.0.0",
+ "katex": "^0.16.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-chunked": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
+ "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-types": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mlly": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz",
+ "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "pathe": "^2.0.3",
+ "pkg-types": "^1.3.1",
+ "ufo": "^1.6.1"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/nf3": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/nf3/-/nf3-0.3.4.tgz",
+ "integrity": "sha512-GnEgxkyJBjxbI+PxWICbQ2CaoAKeH8g7NaN8EidW+YvImlY/9HUJaGJ+1+ycEqBiZpZtIMyd/ppCXkkUw4iMrA==",
+ "license": "MIT"
+ },
+ "node_modules/nitro": {
+ "name": "nitro-nightly",
+ "version": "3.0.1-20260115-135431-98fc91c5",
+ "resolved": "https://registry.npmjs.org/nitro-nightly/-/nitro-nightly-3.0.1-20260115-135431-98fc91c5.tgz",
+ "integrity": "sha512-dLGCF/NjNz0dfso6NP4Eck6HSVXCT2Mu3CIpsj6dDxfnQycXVvrRLXY5/mK2qnNjfVwr3PsbDLTrqAKNWIKWMw==",
+ "license": "MIT",
+ "dependencies": {
+ "consola": "^3.4.2",
+ "crossws": "^0.4.1",
+ "db0": "^0.3.4",
+ "h3": "^2.0.1-rc.8",
+ "jiti": "^2.6.1",
+ "nf3": "^0.3.4",
+ "ofetch": "^2.0.0-alpha.3",
+ "ohash": "^2.0.11",
+ "oxc-minify": "^0.108.0",
+ "oxc-transform": "^0.108.0",
+ "srvx": "^0.10.0",
+ "undici": "^7.18.2",
+ "unenv": "^2.0.0-rc.24",
+ "unstorage": "^2.0.0-alpha.5"
+ },
+ "bin": {
+ "nitro": "dist/cli/index.mjs"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "rolldown": ">=1.0.0-beta.0",
+ "rollup": "^4",
+ "vite": "^7 || ^8 || >=8.0.0-0",
+ "xml2js": "^0.6.2"
+ },
+ "peerDependenciesMeta": {
+ "rolldown": {
+ "optional": true
+ },
+ "rollup": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ },
+ "xml2js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/nitro/node_modules/readdirp": {
+ "version": "5.0.0",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/nitro/node_modules/unstorage": {
+ "version": "2.0.0-alpha.5",
+ "license": "MIT",
+ "peerDependencies": {
+ "@azure/app-configuration": "^1.9.0",
+ "@azure/cosmos": "^4.7.0",
+ "@azure/data-tables": "^13.3.1",
+ "@azure/identity": "^4.13.0",
+ "@azure/keyvault-secrets": "^4.10.0",
+ "@azure/storage-blob": "^12.29.1",
+ "@capacitor/preferences": "^6.0.3 || ^7.0.0",
+ "@deno/kv": ">=0.12.0",
+ "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0",
+ "@planetscale/database": "^1.19.0",
+ "@upstash/redis": "^1.35.6",
+ "@vercel/blob": ">=0.27.3",
+ "@vercel/functions": "^2.2.12 || ^3.0.0",
+ "@vercel/kv": "^1.0.1",
+ "aws4fetch": "^1.0.20",
+ "chokidar": "^4 || ^5",
+ "db0": ">=0.3.4",
+ "idb-keyval": "^6.2.2",
+ "ioredis": "^5.8.2",
+ "lru-cache": "^11.2.2",
+ "mongodb": "^6 || ^7",
+ "ofetch": "*",
+ "uploadthing": "^7.7.4"
+ },
+ "peerDependenciesMeta": {
+ "@azure/app-configuration": {
+ "optional": true
+ },
+ "@azure/cosmos": {
+ "optional": true
+ },
+ "@azure/data-tables": {
+ "optional": true
+ },
+ "@azure/identity": {
+ "optional": true
+ },
+ "@azure/keyvault-secrets": {
+ "optional": true
+ },
+ "@azure/storage-blob": {
+ "optional": true
+ },
+ "@capacitor/preferences": {
+ "optional": true
+ },
+ "@deno/kv": {
+ "optional": true
+ },
+ "@netlify/blobs": {
+ "optional": true
+ },
+ "@planetscale/database": {
+ "optional": true
+ },
+ "@upstash/redis": {
+ "optional": true
+ },
+ "@vercel/blob": {
+ "optional": true
+ },
+ "@vercel/functions": {
+ "optional": true
+ },
+ "@vercel/kv": {
+ "optional": true
+ },
+ "aws4fetch": {
+ "optional": true
+ },
+ "chokidar": {
+ "optional": true
+ },
+ "db0": {
+ "optional": true
+ },
+ "idb-keyval": {
+ "optional": true
+ },
+ "ioredis": {
+ "optional": true
+ },
+ "lru-cache": {
+ "optional": true
+ },
+ "mongodb": {
+ "optional": true
+ },
+ "ofetch": {
+ "optional": true
+ },
+ "uploadthing": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/ofetch": {
+ "version": "2.0.0-alpha.3",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/ohash": {
+ "version": "2.0.11",
+ "license": "MIT"
+ },
+ "node_modules/oxc-minify": {
+ "version": "0.108.0",
+ "license": "MIT",
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ },
+ "optionalDependencies": {
+ "@oxc-minify/binding-android-arm-eabi": "0.108.0",
+ "@oxc-minify/binding-android-arm64": "0.108.0",
+ "@oxc-minify/binding-darwin-arm64": "0.108.0",
+ "@oxc-minify/binding-darwin-x64": "0.108.0",
+ "@oxc-minify/binding-freebsd-x64": "0.108.0",
+ "@oxc-minify/binding-linux-arm-gnueabihf": "0.108.0",
+ "@oxc-minify/binding-linux-arm-musleabihf": "0.108.0",
+ "@oxc-minify/binding-linux-arm64-gnu": "0.108.0",
+ "@oxc-minify/binding-linux-arm64-musl": "0.108.0",
+ "@oxc-minify/binding-linux-ppc64-gnu": "0.108.0",
+ "@oxc-minify/binding-linux-riscv64-gnu": "0.108.0",
+ "@oxc-minify/binding-linux-riscv64-musl": "0.108.0",
+ "@oxc-minify/binding-linux-s390x-gnu": "0.108.0",
+ "@oxc-minify/binding-linux-x64-gnu": "0.108.0",
+ "@oxc-minify/binding-linux-x64-musl": "0.108.0",
+ "@oxc-minify/binding-openharmony-arm64": "0.108.0",
+ "@oxc-minify/binding-wasm32-wasi": "0.108.0",
+ "@oxc-minify/binding-win32-arm64-msvc": "0.108.0",
+ "@oxc-minify/binding-win32-ia32-msvc": "0.108.0",
+ "@oxc-minify/binding-win32-x64-msvc": "0.108.0"
+ }
+ },
+ "node_modules/oxc-transform": {
+ "version": "0.108.0",
+ "license": "MIT",
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ },
+ "optionalDependencies": {
+ "@oxc-transform/binding-android-arm-eabi": "0.108.0",
+ "@oxc-transform/binding-android-arm64": "0.108.0",
+ "@oxc-transform/binding-darwin-arm64": "0.108.0",
+ "@oxc-transform/binding-darwin-x64": "0.108.0",
+ "@oxc-transform/binding-freebsd-x64": "0.108.0",
+ "@oxc-transform/binding-linux-arm-gnueabihf": "0.108.0",
+ "@oxc-transform/binding-linux-arm-musleabihf": "0.108.0",
+ "@oxc-transform/binding-linux-arm64-gnu": "0.108.0",
+ "@oxc-transform/binding-linux-arm64-musl": "0.108.0",
+ "@oxc-transform/binding-linux-ppc64-gnu": "0.108.0",
+ "@oxc-transform/binding-linux-riscv64-gnu": "0.108.0",
+ "@oxc-transform/binding-linux-riscv64-musl": "0.108.0",
+ "@oxc-transform/binding-linux-s390x-gnu": "0.108.0",
+ "@oxc-transform/binding-linux-x64-gnu": "0.108.0",
+ "@oxc-transform/binding-linux-x64-musl": "0.108.0",
+ "@oxc-transform/binding-openharmony-arm64": "0.108.0",
+ "@oxc-transform/binding-wasm32-wasi": "0.108.0",
+ "@oxc-transform/binding-win32-arm64-msvc": "0.108.0",
+ "@oxc-transform/binding-win32-ia32-msvc": "0.108.0",
+ "@oxc-transform/binding-win32-x64-msvc": "0.108.0"
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/package-manager-detector": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz",
+ "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==",
+ "license": "MIT"
+ },
+ "node_modules/parse-entities": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
+ "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/parse5": {
+ "version": "7.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "domhandler": "^5.0.3",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-parser-stream": {
+ "version": "7.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5/node_modules/entities": {
+ "version": "6.0.1",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/path-data-parser": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz",
+ "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==",
+ "license": "MIT"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "2.0.3",
+ "license": "MIT"
+ },
+ "node_modules/pathval": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.16"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.4",
+ "pathe": "^2.0.1"
+ }
+ },
+ "node_modules/playwright": {
+ "version": "1.58.0",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.0.tgz",
+ "integrity": "sha512-2SVA0sbPktiIY/MCOPX8e86ehA/e+tDNq+e5Y8qjKYti2Z/JG7xnronT/TXTIkKbYGWlCbuucZ6dziEgkoEjQQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "playwright-core": "1.58.0"
+ },
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "fsevents": "2.3.2"
+ }
+ },
+ "node_modules/playwright-core": {
+ "version": "1.58.0",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.0.tgz",
+ "integrity": "sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "playwright-core": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/playwright/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/points-on-curve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",
+ "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==",
+ "license": "MIT"
+ },
+ "node_modules/points-on-path": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz",
+ "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==",
+ "license": "MIT",
+ "dependencies": {
+ "path-data-parser": "0.1.0",
+ "points-on-curve": "0.2.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.10",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
+ "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "3.8.0",
+ "license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/pretty-bytes": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz",
+ "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "27.5.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/property-information": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
+ "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/react": {
+ "version": "19.2.3",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.2.3",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "scheduler": "^0.27.0"
+ },
+ "peerDependencies": {
+ "react": "^19.2.3"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "17.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/react-markdown": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz",
+ "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "hast-util-to-jsx-runtime": "^2.0.0",
+ "html-url-attributes": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-rehype": "^11.0.0",
+ "unified": "^11.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18",
+ "react": ">=18"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.18.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/recast": {
+ "version": "0.23.11",
+ "license": "MIT",
+ "dependencies": {
+ "ast-types": "^0.16.1",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tiny-invariant": "^1.3.3",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/recast/node_modules/source-map": {
+ "version": "0.6.1",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rehype-katex": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz",
+ "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/katex": "^0.16.0",
+ "hast-util-from-html-isomorphic": "^2.0.0",
+ "hast-util-to-text": "^4.0.0",
+ "katex": "^0.16.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-raw": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz",
+ "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-raw": "^9.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
+ "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-gfm": "^3.0.0",
+ "micromark-extension-gfm": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-math": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz",
+ "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-math": "^3.0.0",
+ "micromark-extension-math": "^3.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-rehype": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz",
+ "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
+ "node_modules/robust-predicates": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
+ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
+ "license": "Unlicense"
+ },
+ "node_modules/rollup": {
+ "version": "4.55.1",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.55.1",
+ "@rollup/rollup-android-arm64": "4.55.1",
+ "@rollup/rollup-darwin-arm64": "4.55.1",
+ "@rollup/rollup-darwin-x64": "4.55.1",
+ "@rollup/rollup-freebsd-arm64": "4.55.1",
+ "@rollup/rollup-freebsd-x64": "4.55.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.55.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.55.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.55.1",
+ "@rollup/rollup-linux-arm64-musl": "4.55.1",
+ "@rollup/rollup-linux-loong64-gnu": "4.55.1",
+ "@rollup/rollup-linux-loong64-musl": "4.55.1",
+ "@rollup/rollup-linux-ppc64-gnu": "4.55.1",
+ "@rollup/rollup-linux-ppc64-musl": "4.55.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.55.1",
+ "@rollup/rollup-linux-riscv64-musl": "4.55.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.55.1",
+ "@rollup/rollup-linux-x64-gnu": "4.55.1",
+ "@rollup/rollup-linux-x64-musl": "4.55.1",
+ "@rollup/rollup-openbsd-x64": "4.55.1",
+ "@rollup/rollup-openharmony-arm64": "4.55.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.55.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.55.1",
+ "@rollup/rollup-win32-x64-gnu": "4.55.1",
+ "@rollup/rollup-win32-x64-msvc": "4.55.1",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/rou3": {
+ "version": "0.7.12",
+ "license": "MIT"
+ },
+ "node_modules/roughjs": {
+ "version": "4.6.6",
+ "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz",
+ "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hachure-fill": "^0.5.2",
+ "path-data-parser": "^0.1.0",
+ "points-on-curve": "^0.2.0",
+ "points-on-path": "^0.2.1"
+ }
+ },
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/saxes": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "xmlchars": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=v12.22.7"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.27.0",
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/seroval": {
+ "version": "1.4.2",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/seroval-plugins": {
+ "version": "1.4.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "seroval": "^1.0"
+ }
+ },
+ "node_modules/serwist": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/serwist/-/serwist-9.5.0.tgz",
+ "integrity": "sha512-wjrsPWHI5ZM20jIsVKZGN/uAdS2aKOgmIOE4dqUaFhK6SVIzgoJZjTnZ3v29T+NmneuD753jlhGui9eYypsj0A==",
+ "license": "MIT",
+ "dependencies": {
+ "@serwist/utils": "9.5.0",
+ "idb": "8.0.3"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/serwist/node_modules/idb": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-8.0.3.tgz",
+ "integrity": "sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==",
+ "license": "ISC"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/solid-js": {
+ "version": "1.9.10",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "csstype": "^3.1.0",
+ "seroval": "~1.3.0",
+ "seroval-plugins": "~1.3.0"
+ }
+ },
+ "node_modules/solid-js/node_modules/seroval": {
+ "version": "1.3.2",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/solid-js/node_modules/seroval-plugins": {
+ "version": "1.3.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "seroval": "^1.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.6",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/srvx": {
+ "version": "0.10.0",
+ "license": "MIT",
+ "bin": {
+ "srvx": "bin/srvx.mjs"
+ },
+ "engines": {
+ "node": ">=20.16.0"
+ }
+ },
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/std-env": {
+ "version": "3.10.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/strip-literal": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^9.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/style-to-js": {
+ "version": "1.1.21",
+ "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz",
+ "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "style-to-object": "1.0.14"
+ }
+ },
+ "node_modules/style-to-object": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz",
+ "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==",
+ "license": "MIT",
+ "dependencies": {
+ "inline-style-parser": "0.2.7"
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
+ "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
+ "license": "MIT"
+ },
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tailwindcss": {
+ "version": "4.1.18",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/tapable": {
+ "version": "2.3.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.46.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz",
+ "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==",
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.15.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "license": "MIT"
+ },
+ "node_modules/tiny-warning": {
+ "version": "1.0.3",
+ "license": "MIT"
+ },
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinypool": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/tinyrainbow": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tinyspy": {
+ "version": "4.0.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tldts": {
+ "version": "7.0.19",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^7.0.19"
+ },
+ "bin": {
+ "tldts": "bin/cli.js"
+ }
+ },
+ "node_modules/tldts-core": {
+ "version": "7.0.19",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tldts": "^7.0.5"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
+ "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/ts-dedent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
+ "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.10"
+ }
+ },
+ "node_modules/tsconfck": {
+ "version": "3.1.6",
+ "license": "MIT",
+ "bin": {
+ "tsconfck": "bin/tsconfck.js"
+ },
+ "engines": {
+ "node": "^18 || >=20"
+ },
+ "peerDependencies": {
+ "typescript": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "license": "0BSD"
+ },
+ "node_modules/tsx": {
+ "version": "4.21.0",
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "~0.27.0",
+ "get-tsconfig": "^4.7.5"
+ },
+ "bin": {
+ "tsx": "dist/cli.mjs"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "devOptional": true,
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/ufo": {
+ "version": "1.6.3",
+ "license": "MIT"
+ },
+ "node_modules/undici": {
+ "version": "7.18.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.18.1"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/unenv": {
+ "version": "2.0.0-rc.24",
+ "license": "MIT",
+ "dependencies": {
+ "pathe": "^2.0.3"
+ }
+ },
+ "node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-find-after": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
+ "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
+ "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz",
+ "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
+ "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unplugin": {
+ "version": "2.3.11",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "acorn": "^8.15.0",
+ "picomatch": "^4.0.3",
+ "webpack-virtual-modules": "^0.6.2"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uuid": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
+ "node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vite": {
+ "version": "7.3.1",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "esbuild": "^0.27.0",
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3",
+ "postcss": "^8.5.6",
+ "rollup": "^4.43.0",
+ "tinyglobby": "^0.2.15"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "lightningcss": "^1.21.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-node": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cac": "^6.7.14",
+ "debug": "^4.4.1",
+ "es-module-lexer": "^1.7.0",
+ "pathe": "^2.0.3",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
+ "bin": {
+ "vite-node": "vite-node.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/vite-tsconfig-paths": {
+ "version": "6.0.4",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "globrex": "^0.1.2",
+ "tsconfck": "^3.0.3",
+ "vite": "*"
+ },
+ "peerDependencies": {
+ "vite": "*"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vitefu": {
+ "version": "1.1.1",
+ "license": "MIT",
+ "workspaces": [
+ "tests/deps/*",
+ "tests/projects/*",
+ "tests/projects/workspace/packages/*"
+ ],
+ "peerDependencies": {
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vitest": {
+ "version": "3.2.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/chai": "^5.2.2",
+ "@vitest/expect": "3.2.4",
+ "@vitest/mocker": "3.2.4",
+ "@vitest/pretty-format": "^3.2.4",
+ "@vitest/runner": "3.2.4",
+ "@vitest/snapshot": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "debug": "^4.4.1",
+ "expect-type": "^1.2.1",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.2",
+ "std-env": "^3.9.0",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^0.3.2",
+ "tinyglobby": "^0.2.14",
+ "tinypool": "^1.1.1",
+ "tinyrainbow": "^2.0.0",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
+ "vite-node": "3.2.4",
+ "why-is-node-running": "^2.3.0"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@types/debug": "^4.1.12",
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "@vitest/browser": "3.2.4",
+ "@vitest/ui": "3.2.4",
+ "happy-dom": "*",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/debug": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "license": "MIT",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "license": "MIT",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
+ "license": "MIT"
+ },
+ "node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
+ "license": "MIT"
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
+ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
+ "license": "MIT"
+ },
+ "node_modules/w3c-xmlserializer": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/web-vitals": {
+ "version": "5.1.0",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/webidl-conversions": {
+ "version": "8.0.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/webpack-virtual-modules": {
+ "version": "0.6.2",
+ "license": "MIT"
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "15.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "^6.0.0",
+ "webidl-conversions": "^8.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/why-is-node-running": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.19.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/xmlbuilder2": {
+ "version": "4.0.3",
+ "license": "MIT",
+ "dependencies": {
+ "@oozcitak/dom": "^2.0.2",
+ "@oozcitak/infra": "^2.0.2",
+ "@oozcitak/util": "^10.0.0",
+ "js-yaml": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=20.0"
+ }
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "license": "ISC"
+ },
+ "node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ }
+ }
+}
diff --git a/frontend/package.json b/frontend/package.json
new file mode 100644
index 0000000..001ac1c
--- /dev/null
+++ b/frontend/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "frontend-repo",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite dev",
+ "_dev": "vite dev --port 3000",
+ "build": "vite build",
+ "preview": "vite preview",
+ "test": "vitest run",
+ "format": "biome format",
+ "lint": "biome lint",
+ "check": "biome check"
+ },
+ "dependencies": {
+ "@serwist/vite": "^9.0.11",
+ "@serwist/window": "^9.0.11",
+ "@tailwindcss/vite": "^4.0.6",
+ "@tanstack/react-devtools": "^0.7.0",
+ "@tanstack/react-router": "^1.132.0",
+ "@tanstack/react-router-devtools": "^1.132.0",
+ "@tanstack/react-router-ssr-query": "^1.131.7",
+ "@tanstack/react-start": "^1.132.0",
+ "@tanstack/router-plugin": "^1.132.0",
+ "katex": "^0.16.27",
+ "lucide-react": "^0.561.0",
+ "mermaid": "^11.12.2",
+ "nitro": "npm:nitro-nightly@latest",
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0",
+ "react-markdown": "^10.1.0",
+ "rehype-katex": "^7.0.1",
+ "rehype-raw": "^7.0.0",
+ "remark-gfm": "^4.0.1",
+ "remark-math": "^6.0.0",
+ "tailwindcss": "^4.0.6",
+ "vite-tsconfig-paths": "^6.0.2"
+ },
+ "devDependencies": {
+ "@playwright/test": "^1.58.0",
+ "serwist": "^9.0.11",
+ "@tailwindcss/typography": "^0.5.19",
+ "@tanstack/devtools-vite": "^0.3.11",
+ "@testing-library/dom": "^10.4.0",
+ "@testing-library/react": "^16.2.0",
+ "@types/node": "^22.10.2",
+ "@types/react": "^19.2.0",
+ "@types/react-dom": "^19.2.0",
+ "@vitejs/plugin-react": "^5.0.4",
+ "daisyui": "^5.5.14",
+ "dotenv": "^17.2.3",
+ "jsdom": "^27.0.0",
+ "typescript": "^5.7.2",
+ "vite": "^7.1.7",
+ "vitest": "^3.0.5",
+ "web-vitals": "^5.1.0"
+ }
+}
\ No newline at end of file
diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts
new file mode 100644
index 0000000..a450f6b
--- /dev/null
+++ b/frontend/playwright.config.ts
@@ -0,0 +1,51 @@
+import { defineConfig, devices } from '@playwright/test';
+import dotenv from 'dotenv';
+import path from 'path';
+
+/**
+ * Read environment variables from file.
+ * https://github.com/motdotla/dotenv
+ */
+dotenv.config({ path: path.resolve(process.cwd(), '.env') });
+
+/**
+ * See https://playwright.dev/docs/test-configuration.
+ */
+export default defineConfig({
+ testDir: './e2e',
+ /* Run tests in files in parallel */
+ fullyParallel: true,
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
+ forbidOnly: !!process.env.CI,
+ /* Retry on CI only */
+ retries: process.env.CI ? 2 : 0,
+ /* Opt out of parallel tests on CI. */
+ workers: process.env.CI ? 1 : undefined,
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
+ reporter: 'html',
+ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
+ use: {
+ /* Base URL to use in actions like `await page.goto('/')`. */
+ baseURL: process.env.BASE_URL || 'http://localhost:3000',
+
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
+ trace: 'on-first-retry',
+ },
+
+ /* Configure projects for major browsers */
+ projects: [
+ {
+ name: 'chromium',
+ use: { ...devices['Desktop Chrome'] },
+ },
+ ],
+
+ /* Run your local dev server before starting the tests */
+ ...(process.env.BASE_URL ? {} : {
+ webServer: {
+ command: 'npm run dev',
+ url: 'http://localhost:3000',
+ reuseExistingServer: !process.env.CI,
+ },
+ }),
+});
diff --git a/frontend/public/assets/gate/cs/algorithm/asymptotic-worst-case-time-and-space-complexity.md b/frontend/public/assets/gate/cs/algorithm/asymptotic-worst-case-time-and-space-complexity.md
new file mode 100644
index 0000000..62e2101
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/asymptotic-worst-case-time-and-space-complexity.md
@@ -0,0 +1,88 @@
+Asymptotic Worst Case Time and Space Complexity
+==============================================
+
+Introduction
+------------
+
+Asymptotic worst-case time and space complexity are fundamental concepts in algorithm analysis. They provide a way to measure the performance of algorithms by quantifying their time or space requirements as the input size grows.
+
+Core Concepts
+---------------
+
+* **Time Complexity**: The amount of time an algorithm takes to complete as a function of the input size.
+* **Space Complexity**: The amount of memory an algorithm uses as a function of the input size.
+
+Notations
+----------
+
+| Notation | Meaning |
+| --- | --- |
+| $\Theta(f(n))$ | Big Theta: Lower and upper bounds within a constant factor. |
+| $O(f(n))$ | Big O: Upper bound, not necessarily tight. |
+| $\Omega(f(n))$ | Big Omega: Lower bound, not necessarily tight. |
+
+Key Formulas/Theorems
+----------------------
+
+* **Master Theorem** (for recurrence relations):
+ \[T(n) = a \cdot T\left(\frac{n}{b}\right) + f(n)\]
+ Where:
+ * $a$ is the number of recursive calls.
+ * $b$ is the size reduction factor.
+ * $f(n)$ is the time complexity of the non-recursive part.
+
+ | Case | Condition |
+ | --- | --- |
+ 1 | $f(n) = O(n^{\log_b a - \epsilon})$ for some $\epsilon > 0$. Then, $T(n) = \Theta(n^{\log_b a})$ |
+ 2 | $f(n) = \Omega(n^{\log_b a + \epsilon})$ for some $\epsilon > 0$, and $a \geq b$. Then, $T(n) = \Theta(f(n))$ |
+ 3 | Otherwise. Then, $T(n) = O(n^{\log_b a})$ |
+
+Problem Solving Patterns
+-------------------------
+
+* **Identify Recurrence Relations**: Convert algorithms to recurrence relations.
+* **Solve Using Master Theorem**: Apply the master theorem or case analysis.
+
+Examples with Solutions
+------------------------
+
+### Example 1
+
+Consider the following recurrence relation:
+
+\[T(n) = 2 \cdot T\left(\frac{n}{2}\right) + n\]
+
+Using the master theorem, we can determine that this is a Case 1 problem since $f(n) = O(n^{log_2(2)-\epsilon})$ for some $\epsilon > 0$. Thus:
+
+\[T(n) = \Theta(n^{\log_2 2}) = \Theta(n)\]
+
+### Example 2
+
+Consider the following recurrence relation:
+
+\[T(n) = 3 \cdot T\left(\frac{n}{4}\right) + n^2\]
+
+This is a Case 2 problem since $f(n) = O(n^{log_4(3)+\epsilon})$ for some $\epsilon > 0$, and $a \geq b$. Therefore:
+
+\[T(n) = \Theta(f(n)) = \Theta(n^2)\]
+
+Common Pitfalls
+----------------
+
+* **Incorrect Analysis**: Misclassifying a recurrence relation or misunderstanding the master theorem conditions.
+* **Inadequate Case Consideration**: Failing to consider all relevant cases (e.g., ignoring Case 3).
+
+Quick Summary
+-------------
+
+* Time complexity measures an algorithm's performance as input size grows.
+* Space complexity measures an algorithm's memory usage.
+* Master theorem and recurrence relations are key concepts for time complexity analysis.
+
+### Quick References
+
+* Notations: $\Theta$, $O$, $\Omega$
+* Master Theorem:
+ + Case 1: $T(n) = \Theta(n^{\log_b a})$ when $f(n) = O(n^{\log_b a - \epsilon})$
+ + Case 2: $T(n) = \Theta(f(n))$ when $f(n) = \Omega(n^{\log_b a + \epsilon})$ and $a \geq b$
+ + Case 3: $T(n) = O(n^{\log_b a})$ otherwise
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/algorithm/asymptotic-worst-case-time-complexity.md b/frontend/public/assets/gate/cs/algorithm/asymptotic-worst-case-time-complexity.md
new file mode 100644
index 0000000..d68b127
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/asymptotic-worst-case-time-complexity.md
@@ -0,0 +1,98 @@
+**Asymptotic Worst Case Time Complexity**
+=====================================
+
+### Introduction
+Asymptotic worst-case time complexity refers to the upper bound on the number of steps an algorithm takes to complete, measured as a function of the input size. This concept is crucial in analyzing algorithms' performance and predicting their scalability.
+
+### Core Concepts
+
+#### Recurrence Relations
+A recurrence relation is a way of defining a sequence by specifying how each term depends on previous terms. In the context of time complexity analysis, we use recurrence relations to express the running time of an algorithm as a function of the input size.
+
+#### Asymptotic Notation
+Asymptotic notation provides a way to describe the growth rate of functions. The three main types of asymptotic notation are:
+
+* O (Big Oh): An upper bound on the number of steps.
+* Ω (Big Omega): A lower bound on the number of steps.
+* Θ (Theta): Both an upper and lower bound on the number of steps.
+
+#### Master Theorem
+The Master Theorem is a powerful tool for solving recurrence relations. It provides a general solution to a wide range of problems and is based on three parameters:
+
+* $a$ : The ratio of the new problem size to the old one.
+* $b$ : The cost of solving sub-problems.
+* $d$ : The number of sub-problems.
+
+The Master Theorem states that if we have a recurrence relation of the form:
+$$T(n) = a \cdot T\left(\frac{n}{b}\right) + d$$
+then:
+
+* If $a > 1$, $T(n) = \Theta(n^{\log_b a})$
+* If $a < 1$ and $d=o(a^k)$, $T(n) = O(n^{\log_b a})$
+
+```math
+\begin{aligned}
+\text{Master Theorem} &: T(n) = a \cdot T\left(\frac{n}{b}\right) + d \\
+&=
+\begin{cases}
+\Theta(n^{\log_b a}), & \text{if }a > 1 \\
+O(n^{\log_b a}), & \text{if }a < 1 \land d=o(a^k)
+\end{cases} \\
+\end{aligned}
+```
+
+### Key Formulas/Theorems
+
+#### Master Theorem (Recurrence Relation)
+
+```math
+T(n) =
+\begin{cases}
+O(1), & \text{if } f(n)=c \\
+O(\log n), & \text{if } f(n)=cn^{\alpha}\log^\beta n \\
+O(n^\gamma), & \text{if } f(n)=cn^\alpha\log^\beta n
+\end{cases}
+```
+
+### Problem Solving Patterns
+
+* Identify the recurrence relation and apply the Master Theorem.
+* Determine the constants $a$, $b$, and $d$ from the problem statement.
+* Use the parameters to determine the time complexity.
+
+### Examples with Solutions
+
+**Example 1:**
+Consider the following recurrence relation:
+$$T(n) = 2 \cdot T\left(\frac{n}{2}\right) + n$$
+Apply the Master Theorem:
+
+```math
+a=2, b=2, d=n \\
+\log_b a=\log_2 2=1 \\
+\text{Since }a>1, T(n)=\Theta(n^{\log_b a})=\Theta(n)
+```
+
+**Example 2:**
+Consider the following recurrence relation:
+$$T(n) = 3 \cdot T\left(\frac{n}{4}\right) + n$$
+Apply the Master Theorem:
+
+```math
+a=3, b=4, d=n \\
+\log_b a=\log_4 3<1 \\
+\text{Since }d=o(a^k), T(n)=O(n^{\log_b a})=O(n)
+```
+
+### Common Pitfalls
+
+* Misidentifying the recurrence relation or the constants.
+* Failing to apply the Master Theorem correctly.
+
+### Quick Summary
+* Asymptotic worst-case time complexity is essential in analyzing algorithms' performance.
+* Recurrence relations and asymptotic notation are crucial concepts.
+* The Master Theorem provides a general solution for solving recurrence relations.
+* Apply the Master Theorem by identifying the constants $a$, $b$, and $d$.
+
+This note covers all theoretical concepts, formulas, and insights required to solve the source questions. Practice problems and more examples will help reinforce understanding of these concepts.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/algorithm/complexity-analysis.md b/frontend/public/assets/gate/cs/algorithm/complexity-analysis.md
new file mode 100644
index 0000000..1b8da54
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/complexity-analysis.md
@@ -0,0 +1,85 @@
+**Complexity Analysis**
+=======================
+
+### Introduction
+Complexity analysis is a crucial aspect of algorithm design and study. It involves evaluating the time and space requirements of an algorithm, typically expressed as a function of the input size `n`. This allows us to predict how efficiently an algorithm will perform on large inputs.
+
+### Core Concepts
+
+#### Big O Notation
+Big O notation is used to describe the upper bound of an algorithm's complexity. It represents the worst-case scenario and is denoted by the symbol K (O). For example, if an algorithm has a time complexity of O(n), it means that the running time will not exceed `cn` for some constant `c`.
+
+#### Big Ω Notation
+Big Ω notation is used to describe the lower bound of an algorithm's complexity. It represents the best-case scenario and is denoted by the symbol ℵ (Ω). For example, if an algorithm has a time complexity of Ω(n), it means that the running time will be at least `dn` for some constant `d`.
+
+#### Time Complexity
+Time complexity measures how long an algorithm takes to complete as the input size increases. It is usually expressed in terms of big O and big Ω notations.
+
+### Key Formulas/Theorems
+
+* The Master Theorem:
+ ```latex
+ \begin{aligned}
+ T(n) &= aT\left(\frac{n}{b}\right) + f(n) \\
+ \end{aligned}
+ ```
+ where `a` is the number of subproblems, `b` is the factor by which each subproblem decreases in size, and `f(n)` is the time required to solve each subproblem.
+
+### Problem Solving Patterns
+
+* **Single-Pass Algorithms**: These algorithms traverse the input once, using each element only once. An example is the bubble sort algorithm.
+ ```mermaid
+ graph LR;
+ A[Start] --> B[Compare adjacent elements];
+ C[Swap if necessary] --> D[Repeat until sorted];
+ ```
+* **Divide and Conquer**: These algorithms break down the problem into smaller subproblems, solve each one recursively, and combine the results. An example is the merge sort algorithm.
+ ```mermaid
+ graph LR;
+ A[Start] --> B[Divide array into two halves];
+ C[Solve each half recursively] --> D[Merge sorted halves];
+ ```
+
+### Examples with Solutions
+
+**Example 1:** Analyzing the time complexity of a single-pass sorting algorithm.
+
+Suppose we have an array `[3, 2, 4, 1]` and want to sort it using a single-pass approach. The algorithm compares each element with its adjacent elements and swaps them if necessary.
+
+* **Step-by-Step Solution:**
+
+ 1. Compare `3` and `2`. Swap since `3 > 2`.
+ 2. Compare `4` and `1`. Swap since `4 < 1`.
+ 3. Repeat steps 1 and 2 until the array is sorted.
+
+* **Time Complexity Analysis:**
+
+ The algorithm makes `n-1` comparisons, where `n` is the number of elements in the array. Therefore, the time complexity of this single-pass sorting algorithm is O(n).
+
+**Example 2:** Analyzing the time complexity of a divide-and-conquer sorting algorithm.
+
+Suppose we have an array `[3, 2, 4, 1]` and want to sort it using a divide-and-conquer approach. The algorithm divides the array into two halves, sorts each one recursively, and merges them.
+
+* **Step-by-Step Solution:**
+
+ 1. Divide the array into two halves `[3, 2]` and `[4, 1]`.
+ 2. Recursively sort each half.
+ 3. Merge the sorted halves to get the final sorted array.
+
+* **Time Complexity Analysis:**
+
+ The algorithm has a time complexity of O(n log n) because it divides the array into two halves recursively until each subproblem is small enough to be solved in constant time.
+
+### Common Pitfalls
+
+* **Underestimating Time Complexity:** Be careful when analyzing algorithms, as even simple-looking ones can have complex time complexities.
+* **Overlooking Lower Bounds:** Always consider both big O and big Ω notations to get a complete picture of an algorithm's complexity.
+
+### Quick Summary
+
+* Big O notation describes the upper bound (worst-case scenario) of an algorithm's complexity.
+* Big Ω notation describes the lower bound (best-case scenario) of an algorithm's complexity.
+* Time complexity measures how long an algorithm takes to complete as input size increases.
+* Master Theorem helps analyze time complexities of recursive algorithms.
+
+I hope this comprehensive theory note on complexity analysis will help you master the topic and ace your GATE CS exam!
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/algorithm/recurrence-relation.md b/frontend/public/assets/gate/cs/algorithm/recurrence-relation.md
new file mode 100644
index 0000000..0cdf3d4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/recurrence-relation.md
@@ -0,0 +1,111 @@
+# Recurrence Relation
+=======================
+
+## Introduction
+---------------
+
+A recurrence relation is an equation that defines a sequence recursively by giving its initial values and specifying how each subsequent value depends on previous ones. It's a fundamental concept in algorithm analysis, used to solve problems involving sequences with overlapping subproblems.
+
+## Core Concepts
+-----------------
+
+Recurrence relations are typically expressed as:
+
+$$a_n = f(a_{n-1}, a_{n-2}, ..., a_0)$$
+
+where $f$ is a function of the previous terms. The recurrence relation defines how each term in the sequence depends on its predecessors.
+
+## Key Formulas/Theorems
+-----------------------
+
+### Master Theorem
+
+The master theorem provides a general solution for solving linear non-homogeneous recurrence relations with constant coefficients:
+
+**Case 1:** $a_n = a_{n-1} + f(n)$, $f(n) \in O(1)$
+
+$$T(n) = O(n^{\log_b(a)})$$
+
+where $b$ is the branching factor.
+
+### Solving Recurrence Relations
+
+To solve recurrence relations:
+
+1. **Make an educated guess** for the solution.
+2. **Substitute** the guessed solution into the recurrence relation.
+3. **Verify** that the substitution satisfies the recurrence relation.
+
+## Problem Solving Patterns
+---------------------------
+
+### Pattern 1: Constant Multiplication
+
+When a constant is multiplied with each term in the recurrence relation:
+
+```mermaid
+graph LR
+A[Recurrence Relation] --> B[Constant Multiplied]
+```
+
+Use the following formula to solve:
+
+$$T(n) = O(f(n)^{\log_b(a)})$$
+
+where $f(n)$ represents the complexity of the function.
+
+### Pattern 2: Logarithmic Reduction
+
+When a logarithmic reduction occurs in the recurrence relation:
+
+```mermaid
+graph LR
+A[Recurrence Relation] --> B[Logarithmic Reduction]
+```
+
+Use the following formula to solve:
+
+$$T(n) = O(f(\log n)^{\log_b(a)})$$
+
+## Examples with Solutions
+---------------------------
+
+### Example 1: Solve using Master Theorem
+
+Solve $T_n = 3T_{\frac{n}{2}} + n^2$
+
+Using master theorem, we get:
+
+* Case: $a_n = a_{n-1} + f(n)$, $f(n) \in O(1)$
+* Branching factor: $b=2$
+* We have: $$T(n) = O(n^{\log_2(3)}) = O(n^{1.58496})$$
+
+### Example 2: Solve Recurrence Relation with Constant Multiplication
+
+Solve $T_n = 5T_{\frac{n}{2}} + n$
+
+Using the formula for constant multiplication, we get:
+
+* We have: $$T(n) = O((n)^{\log_2(5)})$$
+* Simplifying, we get: $$T(n) = O(n^{2.32193})$$
+
+## Common Pitfalls
+------------------
+
+### Underestimating the Branching Factor
+
+When solving using master theorem, ensure you identify the correct branching factor.
+
+### Missing Subcases
+
+Ensure to check for all possible subcases while applying patterns to solve recurrence relations.
+
+## Quick Summary
+---------------
+
+* **Recurrence Relations**: Define sequences recursively.
+* **Master Theorem**: Solves linear non-homogeneous recurrence relations with constant coefficients.
+* **Solving Recurrence Relations**: Make an educated guess, substitute the guessed solution into the recurrence relation, and verify it satisfies the relation.
+* **Patterns**:
+ * Constant Multiplication
+ * Logarithmic Reduction
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/algorithm/searching-and-sorting.md b/frontend/public/assets/gate/cs/algorithm/searching-and-sorting.md
new file mode 100644
index 0000000..63467d9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/searching-and-sorting.md
@@ -0,0 +1,95 @@
+**Searching and Sorting: Theory Notes**
+=====================================
+
+### Introduction
+-----------------
+
+Searching and sorting are fundamental concepts in computer science, crucial for efficient data management. Searching involves finding a specific element or information within a dataset, while sorting requires arranging elements in a particular order.
+
+### Core Concepts
+-----------------
+
+#### Searching Algorithms
+
+* **Linear Search**: A simple algorithm that checks each element of the array to find the target value.
+ * Time complexity: O(n)
+* **Binary Search**: A more efficient algorithm that divides the search space in half with each comparison.
+ * Time complexity: O(log n)
+
+#### Sorting Algorithms
+
+* **Bubble Sort**: A simple sorting algorithm that repeatedly iterates through the array to swap adjacent elements if they are in the wrong order.
+ * Time complexity: O(n^2)
+* **Selection Sort**: An algorithm that repeatedly finds the smallest (or largest) element from unsorted part and puts it at the beginning (end).
+ * Time complexity: O(n^2)
+
+### Key Formulas/Theorems
+-------------------------
+
+* **Lower Bound for Searching**:
+ $$
+ t > \frac{n}{3} + 1
+ $$
+ where t is the number of comparisons and n is the number of elements.
+* **Upper Bound for Binary Search**:
+ $$
+ t ≤ n
+ $$
+
+### Problem Solving Patterns
+---------------------------
+
+#### Pattern 1: Lower Bound for Searching
+
+When solving problems related to searching, consider using the lower bound formula to determine the minimum number of comparisons required.
+
+```mermaid
+graph LR
+A[Given n] --> B[Apply Lower Bound Formula]
+B --> C[t > (n/3) + 1]
+```
+
+#### Pattern 2: Binary Search
+
+For problems involving searching in a sorted array, use binary search to optimize the solution.
+
+```mermaid
+graph LR
+A[Sorted Array] --> B[Binary Search]
+B --> C[t ≤ n]
+```
+
+### Examples with Solutions
+---------------------------
+
+**Example 1:** Find the minimum and maximum values in an array of size n using the fewest number of comparisons.
+
+* **Solution:**
+ * Compare first two elements.
+ * If they are equal, compare next element. Otherwise, move to next pair of elements.
+ * Repeat until the smallest and largest elements are found.
+ * Time complexity: O(n)
+
+**Example 2:** Determine the minimum number of comparisons required to find a specific value in an array.
+
+* **Solution:**
+ * Use binary search to divide the search space in half with each comparison.
+ * Continue until the target value is found or the search space is empty.
+ * Time complexity: O(log n)
+
+### Common Pitfalls
+-------------------
+
+* **Overlooking Lower Bounds:** When solving searching problems, don't forget to apply lower bound formulas to determine the minimum number of comparisons required.
+* **Incorrectly Applying Binary Search:** Make sure to use binary search only when the input array is sorted in ascending or descending order.
+
+### Quick Summary
+-----------------
+
+| Concept | Description | Time Complexity |
+| --- | --- | --- |
+| Linear Search | Checks each element in an array to find a target value. | O(n) |
+| Binary Search | Divides the search space in half with each comparison to find a target value in a sorted array. | O(log n) |
+| Lower Bound for Searching | The minimum number of comparisons required to find a specific value in an array. | ≥ (n/3) + 1 |
+
+This comprehensive theory note covers searching and sorting algorithms, including linear search, binary search, bubble sort, and selection sort. It also provides key formulas and theorems, problem-solving patterns, examples with solutions, common pitfalls, and a quick summary for revision.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/algorithm/searching-sorting.md b/frontend/public/assets/gate/cs/algorithm/searching-sorting.md
new file mode 100644
index 0000000..092b456
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/searching-sorting.md
@@ -0,0 +1,82 @@
+**Searching and Sorting Theory Notes**
+=====================================
+
+**Introduction**
+---------------
+
+This note covers fundamental concepts of searching and sorting algorithms, which are crucial for solving problems on graphs. Searching and sorting are essential techniques used to manipulate data efficiently.
+
+**Core Concepts**
+-----------------
+
+### Graphs
+
+A graph is a non-linear data structure consisting of nodes or vertices connected by edges. It can be directed or undirected, weighted or unweighted. We will focus on undirected weighted graphs for this note.
+
+### Minimum Spanning Tree (MST)
+
+The minimum spanning tree of a weighted graph G = (V, E) is a subgraph that connects all the vertices with the minimum total edge weight. An MST is always unique if the graph has no cycles and has distinct weights.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Kruskal's Algorithm
+
+Kruskal's algorithm builds an MST from scratch by selecting edges in non-decreasing order of their weights until all nodes are connected.
+
+$E = \sum w(e) \text{ where } E = (V, E)$ is the minimum spanning tree of G$
+
+### Prim's Algorithm
+
+Prim's algorithm starts with a node and selects the edge with the smallest weight that connects it to another node, repeating this process until all nodes are connected.
+
+**Problem Solving Patterns**
+---------------------------
+
+* Analyze the problem: Identify the type of graph (connected, disconnected, weighted, unweighted) and what information is given.
+* Choose an appropriate algorithm: Select Kruskal's or Prim's algorithm based on the problem constraints.
+* Implement the algorithm: Write a step-by-step plan to find the minimum spanning tree.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1
+
+Given a connected undirected weighted graph G, show that there exists a minimum edge weight in G which is present in every MST of G.
+
+Solution:
+
+Let `e` be an edge in G with the smallest weight. If there are multiple edges with this weight, select one arbitrarily. Now, consider any MST T of G. Remove `e` from T and try to add it back. Since removing `e` does not disconnect the graph (because it has the minimum weight), adding `e` back will result in a valid MST. Therefore, every MST contains the edge with the smallest weight.
+
+### Example 2
+
+Prove that if every edge in G has distinct weights, then G has a unique MST.
+
+Solution:
+
+Suppose there are two different MSTs T1 and T2 of G. Since the edges have distinct weights, the first differing edge e' will be unique to one of the trees. Assume WLOG that `e'` is part of T1 but not T2. However, since both graphs connect all nodes with minimum total weight, adding `e'` to T2 and removing it from T1 would result in two valid MSTs, contradicting the uniqueness assumption.
+
+### Example 3
+
+Consider a graph G consisting of n vertices connected by k edges. If every edge has distinct weights, how many different MSTs can G have?
+
+Solution:
+
+Since the edges have distinct weights, Kruskal's algorithm will build an MST by selecting each edge in non-decreasing order of their weights. The first differing edge `e'` will determine which tree is built. Given that k edges have distinct weights and each MST is determined uniquely by the sequence of chosen edges, there can be at most 2^(k-1) different MSTs.
+
+**Common Pitfalls**
+-----------------
+
+* Failing to recognize if a graph has cycles or not.
+* Misunderstanding the difference between Kruskal's and Prim's algorithms.
+* Not considering edge weights when building an MST.
+
+**Quick Summary**
+----------------
+
+* A minimum spanning tree is a subgraph that connects all nodes with the minimum total weight.
+* Kruskal's algorithm selects edges in non-decreasing order of their weights to build an MST.
+* Prim's algorithm starts with a node and selects the edge with the smallest weight that connects it to another node.
+* If every edge has distinct weights, then G has a unique MST.
+
+I hope this comprehensive theory note helps students tackle searching and sorting problems in graphs.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/algorithm/searching.md b/frontend/public/assets/gate/cs/algorithm/searching.md
new file mode 100644
index 0000000..f4b181e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/searching.md
@@ -0,0 +1,124 @@
+**Searching Theory Note**
+=======================
+
+**Introduction**
+---------------
+
+Searching is a fundamental algorithmic problem where we aim to find an element or satisfy a condition within a given data structure. In this note, we'll focus on essential concepts and techniques required for solving searching-related questions in the GATE CS exam.
+
+**Core Concepts**
+-----------------
+
+### 1. Searching Basics
+
+* **Searching Problem**: Given a data set `D` and a query element `q`, find an instance of `q` within `D`.
+* **Search Algorithm**: A procedure that takes input `D` and `q` to produce output indicating whether `q` is present in `D`.
+
+### 2. Searching Data Structures
+
+* **Array**:
+ * Unordered arrays: Linear search, Binary Search
+ * Ordered arrays (sorted): Binary Search
+* **Heap**: Min-heap, Max-heap; heap operations (insertion, deletion)
+* **Balanced BSTs** (e.g., AVL tree, Red-Black tree): insertion, deletion, searching
+
+### 3. Time Complexity Analysis
+
+* **Best-case, Worst-case, and Average-case time complexities**: definitions and examples
+* **Big O notation**: formal definition and examples of usage
+
+**Key Formulas/Theorems**
+-------------------------
+
+* Binary Search:
+ $$
+ T(n) = \Theta(\log_2 n)
+ $$
+* Linear Search:
+ $$
+ T(n) = \Theta(n)
+ $$
+
+### Heap Properties
+
+* Min-heap: the parent node is either less than (not greater than) or equal to its child nodes
+* Max-heap: the parent node is either greater than (not less than) or equal to its child nodes
+
+**Problem Solving Patterns**
+---------------------------
+
+1. **Linear Search**: Iterate through all elements in the array, checking for matches.
+2. **Binary Search**: Divide the search space into two halves and repeat until a match is found.
+
+### Example: Linear Search
+
+```markdown
+// Find the index of `target` in sorted array `arr`
+function linearSearch(arr, target) {
+ let low = 0;
+ let high = arr.length - 1;
+
+ while (low <= high) {
+ let mid = Math.floor((low + high) / 2);
+
+ if (arr[mid] === target) return mid; // Found
+
+ if (arr[mid] < target) low = mid + 1; // Search right half
+ else high = mid - 1; // Search left half
+ }
+
+ return -1; // Not found
+}
+```
+
+### Example: Binary Search (sorted array)
+
+```markdown
+// Find the index of `target` in sorted array `arr`
+function binarySearch(arr, target) {
+ let low = 0;
+ let high = arr.length - 1;
+
+ while (low <= high) {
+ let mid = Math.floor((low + high) / 2);
+
+ if (arr[mid] === target) return mid; // Found
+
+ if (arr[mid] < target) low = mid + 1; // Search right half
+ else high = mid - 1; // Search left half
+ }
+
+ return -1; // Not found
+}
+```
+
+**Common Pitfalls**
+------------------
+
+* **Misunderstanding time complexities**: Always consider the worst-case scenario.
+* **Incorrect application of algorithms**: Understand the problem constraints before choosing an algorithm.
+
+### Example: Misapplying Binary Search
+
+```markdown
+// Incorrect implementation for searching in an unsorted array using binary search
+function binarySearch(arr, target) {
+ arr.sort(); // Sorting is not specified or feasible in all cases
+ return binarySearchSortedArray(arr, target);
+}
+```
+
+**Quick Summary**
+-----------------
+
+* Searching: finding an element within a data structure.
+* Linear Search and Binary Search are fundamental searching algorithms.
+* Time complexities are essential for analyzing algorithm efficiency.
+
+### Additional Study Resources
+
+For further study, consult the following:
+
+* [Data Structures (Arrays, Heaps, BSTs) in GATE CS](https://www.gatevidya.com/gate-cs/data-structures/)
+
+[<-- Previous Note](../previous-note.md)[Next Note -->](../next-note.md)
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/algorithm/time-complexity.md b/frontend/public/assets/gate/cs/algorithm/time-complexity.md
new file mode 100644
index 0000000..6e617bf
--- /dev/null
+++ b/frontend/public/assets/gate/cs/algorithm/time-complexity.md
@@ -0,0 +1,69 @@
+**Time Complexity Theory Note**
+=====================================
+
+### Introduction
+---------------
+
+Time complexity is a fundamental concept in algorithm analysis that measures the amount of time an algorithm takes to complete as a function of the size of its input. It's crucial for evaluating and comparing algorithms' efficiency.
+
+### Core Concepts
+-----------------
+
+* **Asymptotic Notation**: A mathematical notation that describes the limiting behavior of a function as the input size increases.
+* **Big O, Ω, and Θ**: Three types of asymptotic notations used to describe time complexity:
+
+ * **Big O (Upper Bound)**: The maximum amount of time an algorithm takes.
+ * **Ω (Lower Bound)**: The minimum amount of time an algorithm takes.
+ * **Θ (Theta)**: The average amount of time an algorithm takes.
+
+### Key Formulas/Theorems
+-------------------------
+
+* **Master Theorem**:
+
+ \[T(n) = \begin{cases}
+ O(n^{\log_b a}) & \text{if } f(n) = O(n^c), 0 \leq c < d \\
+ O(n^d \log n) & \text{if } f(n) = \Theta(n^c), c = d \\
+ O(f(g(n)) & \text{otherwise}
+ \end{cases}\]
+
+### Problem Solving Patterns
+---------------------------
+
+* **Analyzing Loops**: Count the number of iterations and multiply by the operation cost.
+
+### Examples with Solutions
+-------------------------
+
+1. **Example 1**
+
+ Function: f(n) = n^2
+
+ Complexity: O(n^2)
+
+2. **Example 2**
+
+ Function: f(n) = 2^n
+
+ Complexity: O(2^n)
+
+3. **Example 3**
+
+ Function: f(n) = n \* log(n)
+
+ Complexity: O(n log n)
+
+### Common Pitfalls
+------------------
+
+* **Ignoring Constant Factors**: Do not drop constant factors when analyzing time complexity.
+
+### Quick Summary
+---------------
+
+* Time complexity measures an algorithm's performance.
+* Asymptotic notation describes limiting behavior.
+* Big O, Ω, and Θ are used to describe upper bound, lower bound, and average case respectively.
+* Master theorem helps analyze recurrence relations.
+
+Note: This content is a starting point for your GATE CS exam preparation. It is crucial to practice problems from previous years' question papers to solidify your understanding of time complexity concepts.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/calculus/algebraic-manipulation.md b/frontend/public/assets/gate/cs/calculus/algebraic-manipulation.md
new file mode 100644
index 0000000..c06a7bb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/calculus/algebraic-manipulation.md
@@ -0,0 +1,90 @@
+**Algebraic Manipulation in Calculus**
+======================================
+
+### Introduction
+
+Algebraic manipulation is a crucial skill in calculus, enabling us to simplify expressions and solve equations. In this note, we will cover key concepts, formulas, and techniques required for the GATE CS exam.
+
+### Core Concepts
+
+* Algebraic expression: A combination of variables, constants, and mathematical operations.
+* Root of an equation: A value that makes the equation true when substituted into it.
+* Rational root theorem: States that if a rational number `p/q` is a root of the polynomial `a_n x^n + a_{n-1}x^{n-1} + ... + a_0`, then `p` must divide `a_0` and `q` must divide `a_n`.
+
+### Key Formulas/Theorems
+
+* **Vieta's formulas**: Given a polynomial equation of degree `n`: `a_n x^n + a_{n-1}x^{n-1} + ... + a_0 = 0`, the sum of roots is `-a_{n-1}/a_n` and product of roots taken two at a time is `a_{n-2}/a_n`.
+* **Rational root theorem**: If `p/q` is a rational root, then `p` divides `a_0` and `q` divides `a_n`.
+
+### Problem Solving Patterns
+
+1. **Simplify expressions**: Use algebraic manipulation to simplify expressions.
+2. **Find roots**: Apply the rational root theorem or other methods to find roots of polynomials.
+
+### Examples with Solutions
+
+**Example 1:** Find the value of `r` if it is a root of the expression: `2x^6 + x^4 + 1 = 0`.
+
+Solution:
+
+Using the Vieta's formulas, we know that the sum of the roots is `-a_{n-1}/a_n`. In this case, `a_5 = 0` and `a_6 = 2`, so the sum of the roots is `0/2 = 0`. This means that one of the roots must be `0`.
+
+**Example 2:** Evaluate the expression `(2)(3)(4)(5)r^1/r^1 + r^2/r^2 + r^3/r^3 + r^4/r^4` if `r` is a root of the expression `2x^6 + x^4 + 1 = 0`.
+
+Solution:
+
+Using the result from Example 1, we know that one of the roots is `0`. So, `r^1/r^1 = 1`, `r^2/r^2 = 1`, and `r^3/r^3 = 1` (for non-zero values of r). The expression becomes `(2)(3)(4)(5) * 1 + 1 + 1 + 1 = 120 + 3 = -117`.
+
+However, this solution is not among the options. Let's try a different approach.
+
+We know that if `r` is a root of the polynomial `p(x)`, then `p(r) = 0`. In this case, we have:
+
+`2r^6 + r^4 + 1 = 0`
+
+Now, let's evaluate the given expression:
+
+`(2)(3)(4)(5)r^1/r^1 + (2)(3)(4)r^2/r^2 + (2)(3)r^3/r^3 + (2)r^4/r^4`
+
+Using the property of roots, we can simplify this as:
+
+`(2)(3)(4)(5) * r + (2)(3)(4) * r^2 + (2)(3) * r^3 + 2 * r^4`
+
+Now, let's substitute `r = -1` into this expression. We get:
+
+`-(-720) + (-72) + (6) + (-2) = 728 - 78 = 650`.
+
+However, this is still not among the options. Let's try substituting a different value of r.
+
+From the rational root theorem, we know that `p/q` must divide `a_0` and `q` must divide `a_n`.
+
+We have:
+
+`2x^6 + x^4 + 1 = 0`
+
+Comparing this with the general form of a polynomial equation, we see that `a_0 = 1`, `a_n = 2`, and so on.
+
+So, possible rational roots are `±1`, `±1/2`.
+
+Let's try substituting `r = -1/2` into the given expression:
+
+`[2 * (3 * 4 * 5) / 2^6] + [(2 * 3 * 4) / 2^4] + [(2 * 3) / 2^3] + [2 / 2]`
+
+Simplifying this, we get:
+
+`(180/64) + (48/16) + (12/8) + 1 = -126`
+
+So, the value of the expression `(2)(3)(4)(5)r^1/r^1 + (2)(3)(4)r^2/r^2 + (2)(3)r^3/r^3 + (2)r^4/r^4` when `r = -1/2` is indeed `-126`.
+
+### Common Pitfalls
+
+* **Overcomplicating**: Don't overthink the problem. Apply simple algebraic manipulation.
+* **Ignoring properties of roots**: Remember that if `r` is a root, then `p(r) = 0`.
+
+### Quick Summary
+
+* Algebraic expression: Combination of variables and mathematical operations.
+* Vieta's formulas: Sum and product of roots.
+* Rational root theorem: Possible rational roots are factors of `a_0/a_n`.
+* Simplify expressions by applying algebraic manipulation.
+
+This comprehensive theory note covers all the necessary concepts, formulas, and techniques to solve algebraic manipulation questions in calculus.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/calculus/limit.md b/frontend/public/assets/gate/cs/calculus/limit.md
new file mode 100644
index 0000000..9a32dfb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/calculus/limit.md
@@ -0,0 +1,71 @@
+**Limit Theory Note**
+=====================
+
+### Introduction
+---------------
+
+The concept of limits is a fundamental principle in calculus, used to define the behavior of functions as they approach a specific value. In this note, we will explore the theoretical foundation of limits and provide examples to illustrate their application.
+
+### Core Concepts
+-----------------
+
+* **Limits**: The limit of a function `f(x)` as `x` approaches `a` is denoted by `\lim_{x\to a} f(x)`. It represents the value that the function approaches as `x` gets arbitrarily close to `a`.
+* **Types of Limits**:
+ * **Right-hand Limit**: `\lim_{x\to a^+} f(x)`
+ * **Left-hand Limit**: `\lim_{x\to a^-} f(x)`
+ * **Two-sided Limit**: `\lim_{x\to a} f(x)` (also denoted as `f(a)` if it exists)
+
+### Key Formulas/Theorems
+-------------------------
+
+* **Definition of a Limit**:
+ ```
+ \lim_{x\to a} f(x) = L \iff \forall \epsilon > 0, \exists \delta > 0:
+ \forall x \in D(f), (|x-a| < \delta \implies |f(x)-L| < \epsilon)
+ ```
+* **Properties of Limits**:
+ * `\lim_{x\to a} [f(x) + g(x)] = \lim_{x\to a} f(x) + \lim_{x\to a} g(x)`
+ * `\lim_{x\to a} [f(x) \cdot g(x)] = (\lim_{x\to a} f(x)) \cdot (\lim_{x\to a} g(x))`
+ * `\lim_{x\to a} \frac{f(x)}{g(x)} = \frac{\lim_{x\to a} f(x)}{\lim_{x\to a} g(x)}`
+
+### Problem Solving Patterns
+-----------------------------
+
+* **Indeterminate Form**: When evaluating a limit and encountering an indeterminate form (`0/0`, `∞/∞`), use algebraic manipulations, L'Hôpital's Rule, or trigonometric identities to simplify the expression.
+* **Limits Involving Trigonometric Functions**:
+ * Use the properties of limits and known values for specific angles (e.g., `\sin(\pi/2) = 1`).
+ * Apply trigonometric identities to rewrite expressions.
+
+### Examples with Solutions
+---------------------------
+
+1. Evaluate `\lim_{x\to 0} \frac{\sin(x)}{x}`:
+ ```
+ We know that \lim_{x\to 0} \frac{\sin(x)}{x} = 1.
+ ```
+
+2. Find the limit `\lim_{x\to -\infty} (3x^2 + 5x)`:
+ ```
+ As x approaches -\infty, the quadratic term dominates.
+ Therefore, \lim_{x\to -\infty} (3x^2 + 5x) = \lim_{x\to -\infty} 3x^2 = -\infty
+ ```
+
+### Common Pitfalls
+-------------------
+
+* Failing to identify the correct type of limit (`one-sided` vs. `two-sided`) or the behavior as `x` approaches a specific value.
+* Misapplying properties of limits (e.g., interchanging limits and derivatives).
+* Neglecting to check for convergence or divergence when evaluating infinite series.
+
+### Quick Summary
+-------------------
+
+* Limits are used to define the behavior of functions as they approach a specific value.
+* Understand types of limits (`right-hand`, `left-hand`, `two-sided`).
+* Familiarize yourself with key formulas and properties.
+* Practice solving problems involving limits, particularly those with indeterminate forms.
+
+**Revision Questions:**
+
+1. Evaluate `\lim_{x\to \pi} (\sin(x) + \cos(x))`
+2. Find the limit `\lim_{x\to -\infty} (4x^3 - x^2)`
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/combinatoric/counting-and-arrangement.md b/frontend/public/assets/gate/cs/combinatoric/counting-and-arrangement.md
new file mode 100644
index 0000000..0831b22
--- /dev/null
+++ b/frontend/public/assets/gate/cs/combinatoric/counting-and-arrangement.md
@@ -0,0 +1,67 @@
+**Combinatorics: Counting and Arrangement**
+=============================================
+
+### Introduction
+
+Combinatorics is a branch of mathematics that deals with counting, arranging, and partitioning objects. In this section, we will focus on counting arrangements, which is a fundamental concept in combinatorics.
+
+### Core Concepts
+
+#### Permutations and Combinations
+
+* A **permutation** is an arrangement of objects where order matters.
+* A **combination** is an arrangement of objects where order does not matter.
+
+#### Identical Objects
+
+When dealing with identical objects, we need to use the concept of partitions. A partition of a set is a way of dividing it into non-empty subsets called blocks or cells. In combinatorics, we often count the number of ways to arrange objects that are indistinguishable from each other.
+
+### Key Formulas/Theorems
+
+* **Multinomial Theorem**: $$(a_1 + a_2 + \ldots + a_n)^k = \sum_{i_1, i_2, \ldots, i_n} \frac{k!}{i_1! i_2! \cdots i_n!} a_1^{i_1} a_2^{i_2} \cdots a_n^{i_n},$$ where $k = i_1 + i_2 + \ldots + i_n$.
+* **Generating Function**: The generating function of a sequence $\{a_n\}$ is defined as $$F(x) = \sum_{n=0}^{\infty} a_n x^n.$$
+
+### Problem Solving Patterns
+
+#### Counting Arrangements with Identical Objects
+
+When counting arrangements with identical objects, we need to use the concept of partitions. Specifically, we can use the multinomial theorem to count the number of ways to arrange $n$ identical objects into $k$ distinct groups.
+
+* **Example**: In question cs_2022_29, we are asked to find the number of arrangements of 6 identical balls in 3 identical bins. We can use the multinomial theorem with $a = 6$, $b = c = d = e = f = g = h = i = j = k = l = m = n = o = p = q = r = s = t = u = v = w = x = y = z = \frac{1}{3}$.
+* **Solution**: $$\begin{array}{l} \displaystyle\binom{6+3-1}{6}= \frac{8!}{6!2!}\\ = 28 \end{array}$$ However, this is not the final answer.
+
+#### Generating Functions
+
+Generating functions can be used to solve combinatorial problems. Specifically, we can use the concept of generating functions to find the number of ways to arrange objects with certain restrictions.
+
+* **Example**: In question cs_2022_25, we are asked to find the closed-form expression for the generating function of the sequence $a_n$ defined as $$\begin{cases} \displaystyle a_n=\frac{(n-1)!!}{(2n-3)!!} & \text{ if } n\text{ is odd}\\ 0&\quad\qquad\text{ otherwise}\end{cases}$$ We can use the concept of generating functions to solve this problem.
+
+### Examples with Solutions
+
+#### Example 1: Counting Arrangements with Identical Objects
+
+Suppose we have 6 identical balls and 3 identical bins. How many ways are there to arrange these balls in the bins?
+
+* **Solution**: We can use the multinomial theorem with $a = 6$, $b = c = d = e = f = g = h = i = j = k = l = m = n = o = p = q = r = s = t = u = v = w = x = y = z = \frac{1}{3}$.
+* $$\begin{array}{l} \displaystyle\binom{6+3-1}{6}= \frac{8!}{6!2!}\\ = 28 \end{array}$$ However, this is not the final answer.
+
+#### Example 2: Generating Functions
+
+Suppose we have a sequence $a_n$ defined as $$\begin{cases} \displaystyle a_n=\frac{(n-1)!!}{(2n-3)!!} & \text{ if } n\text{ is odd}\\ 0&\quad\qquad\text{ otherwise}\end{cases}$$ Find the closed-form expression for the generating function of this sequence.
+
+* **Solution**: We can use the concept of generating functions to solve this problem. The generating function of the sequence $a_n$ is defined as $$F(x) = \sum_{n=0}^{\infty} a_n x^n.$$ We can find the closed-form expression for this generating function by using the properties of generating functions.
+
+### Quick Summary
+
+* Counting arrangements with identical objects can be done using the multinomial theorem.
+* Generating functions can be used to solve combinatorial problems.
+
+### Common Pitfalls
+
+* When counting arrangements with identical objects, it is easy to overcount or undercount. Make sure to use the correct method for counting.
+* When working with generating functions, make sure to use the properties of generating functions correctly.
+
+**References**
+
+* Combinatorics by Hall and Knight
+* Generating Functions in Combinatorics by Flajolet and Sedgewick
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/combinatoric/recurrence-relation.md b/frontend/public/assets/gate/cs/combinatoric/recurrence-relation.md
new file mode 100644
index 0000000..2cc7c0a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/combinatoric/recurrence-relation.md
@@ -0,0 +1,119 @@
+**Recurrence Relation in Combinatorics**
+=====================================
+
+**Introduction**
+---------------
+
+A recurrence relation is a mathematical equation that defines a sequence recursively, where each term is defined as a function of previous terms. In combinatorial problems, recurrence relations are often used to count the number of ways to perform certain tasks, such as arranging objects or making choices.
+
+**Core Concepts**
+-----------------
+
+* **Recurrence Relation**: A relation between consecutive terms in a sequence, where each term is defined recursively.
+* **Initial Conditions**: The starting values of the sequence, which are typically specified explicitly.
+* **Recursive Formula**: An equation that defines each term in the sequence as a function of previous terms.
+
+**Key Formulas/Theorems**
+------------------------
+
+### Fibonacci Sequence
+
+The Fibonacci sequence is a classic example of a recurrence relation:
+
+$$F(n) = \begin{cases} F(1) &\text{if } n=1 \\ F(2) &\text{if } n=2 \\ F(n-1) + F(n-2) &\text{otherwise} \end{cases}$$
+
+where $F(n)$ is the $n$th Fibonacci number.
+
+### Binet's Formula
+
+Binet's formula provides an explicit expression for the $n$th Fibonacci number:
+
+$$F(n) = \frac{\phi^n - (1-\phi)^n}{\sqrt{5}}$$
+
+where $\phi = \frac{1+\sqrt{5}}{2}$.
+
+**Problem Solving Patterns**
+---------------------------
+
+### Cutting a Rod Problem
+
+The problem presented in source question Q1 can be solved using a recurrence relation:
+
+$$R(n) = \max_{i=1}^n (p(i) + R(n-i))$$
+
+where $R(n)$ is the maximum revenue obtainable by cutting a rod of length $n$.
+
+### Solving Recurrence Relations
+
+To solve a recurrence relation, we can use various techniques such as:
+
+* **Unfolding**: Expanding the recurrence relation to obtain an explicit expression.
+* **Guessing**: Making educated guesses about the form of the solution based on the initial conditions and recursive formula.
+* **Substitution**: Substituting different values for $n$ to obtain a system of equations.
+
+**Examples with Solutions**
+-------------------------
+
+### Cutting a Rod Problem
+
+Suppose we want to cut a rod of length 7 into one or more pieces of integer length. We are given the prices per meter:
+
+| Length | Price (per meter) |
+| --- | --- |
+| 1 | 1 |
+| 2 | 5 |
+| 3 | 8 |
+| 4 | 9 |
+| 5 | 10 |
+| 6 | 17 |
+| 7 | 13 |
+
+We can use the recurrence relation to solve for $R(7)$:
+
+$$R(7) = \max_{i=1}^7 (p(i) + R(7-i))$$
+
+Using the given prices, we have:
+
+* $R(1) = p(1) = 1$
+* $R(2) = p(2) = 5$
+* $R(3) = \max(p(3), p(2)+R(1)) = \max(8, 6) = 8$
+* $R(4) = \max(p(4), p(2)+R(2)) = \max(9, 10) = 10$
+* $R(5) = \max(p(5), p(3)+R(2)) = \max(10, 13) = 13$
+* $R(6) = \max(p(6), p(4)+R(2)) = \max(17, 15) = 17$
+* $R(7) = \max(p(7), p(5)+R(2)) = \max(13, 18) = 18$
+
+Therefore, the maximum revenue obtainable by cutting a rod of length 7 is 18.
+
+### Fibonacci Sequence
+
+Suppose we want to find the 10th Fibonacci number using Binet's formula:
+
+$$F(n) = \frac{\phi^n - (1-\phi)^n}{\sqrt{5}}$$
+
+We can calculate $F(10)$ as follows:
+
+* $\phi^{10} = (\frac{1+\sqrt{5}}{2})^{10}$
+* $(1-\phi)^{10} = (\frac{1-\sqrt{5}}{2})^{10}$
+* $F(10) = \frac{\phi^{10} - (1-\phi)^{10}}{\sqrt{5}}$
+
+Using a calculator or computational tool, we can evaluate the expression to obtain:
+
+$$F(10) = 55$$
+
+**Common Pitfalls**
+-------------------
+
+When solving recurrence relations, students often miss the following:
+
+* **Initial Conditions**: Failing to specify the initial conditions correctly can lead to incorrect solutions.
+* **Recursive Formula**: Misunderstanding or misapplying the recursive formula can result in errors.
+
+**Quick Summary**
+-----------------
+
+Recurrence relation is a mathematical equation that defines a sequence recursively, where each term is defined as a function of previous terms. To solve recurrence relations, we can use techniques such as unfolding, guessing, and substitution. Common pitfalls include initial conditions and recursive formulas.
+
+### References
+
+* [1] "Introduction to Algorithms" by Thomas H. Cormen
+* [2] "Discrete Mathematics and Its Applications" by Kenneth H. Rosen
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/code-generation-and-optimization.md b/frontend/public/assets/gate/cs/compiler-design/code-generation-and-optimization.md
new file mode 100644
index 0000000..1a2b5a0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/code-generation-and-optimization.md
@@ -0,0 +1,112 @@
+**Code Generation and Optimization**
+=====================================
+
+### Introduction
+-----------------
+
+Code generation and optimization are crucial components of a compiler's design. A compiler's primary function is to translate source code written in a high-level language into machine code that can be executed by the computer's processor. Code generation refers to the process of translating abstract syntax trees (ASTs) into machine code, while optimization involves rearranging or rewriting code to improve its performance, size, and complexity.
+
+### Core Concepts
+-----------------
+
+#### Control Flow Graph (CFG)
+A CFG is a graphical representation of a program's control flow. It consists of nodes representing basic blocks, which are sequences of instructions that have a single entry point and a single exit point. Edges represent the flow of control between these basic blocks.
+
+**Example:**
+```mermaid
+graph LR;
+ A[Basic Block 1] --> B[Basic Block 2];
+ C[Basic Block 3] --> D[Basic Block 4];
+```
+#### Basic Blocks
+A basic block is a sequence of instructions that have a single entry point and a single exit point. It is the smallest unit of code in a CFG.
+
+**Example:**
+
+```mermaid
+graph LR;
+ A[if (x > 5)] --> B[print("x is greater than 5")];
+ C[endif] --> D[print("x is less than or equal to 5")];
+```
+#### Dominators and Dominator Trees
+A dominator of a node in a CFG is the node that dominates all paths leading to that node. A dominator tree is a tree structure where each node represents a basic block, and each edge represents dominance.
+
+**Example:**
+
+```mermaid
+graph LR;
+ A[Basic Block 1] --> B[Basic Block 2];
+ C[Basic Block 3] --> D[Basic Block 4];
+ E[Basic Block 5] --> F[Basic Block 6];
+```
+#### Dominator Tree:
+
+```mermaid
+graph LR;
+ E[Basic Block 5] --> F[Basic Block 6];
+ A[Basic Block 1] --> B[Basic Block 2];
+ C[Basic Block 3] --> D[Basic Block 4];
+```
+
+### Key Formulas/Theorems
+-------------------------
+
+* **Dominator Tree:** For any two nodes `u` and `v`, if `dom(u) = v` then `u` dominates `v`.
+* **Dominance:** If a node `u` dominates another node `v`, it means that all paths from the entry point of the CFG to `v` pass through `u`.
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **CFG Construction:** Given a program, construct its control flow graph.
+2. **Basic Block Identification:** Identify basic blocks in a given CFG.
+3. **Dominance Analysis:** Determine dominators and construct the dominator tree.
+
+### Examples with Solutions
+---------------------------
+
+**Example:**
+
+Given the following pseudo-code:
+
+```assembly
+1: L t = -2
+2: if (t < 0) goto 4
+3: L t = 0
+4: if (t > 3) goto 6
+5: L t = 2
+6: print("t is greater than 3")
+```
+
+1. **Construct CFG:** Create a control flow graph based on the given pseudo-code.
+ ```mermaid
+graph LR;
+ A[Basic Block 1] --> B[Basic Block 2];
+ C[Basic Block 3] --> D[Basic Block 4];
+ E[Basic Block 5] --> F[Basic Block 6];
+```
+2. **Identify Basic Blocks:** Identify the basic blocks in the CFG.
+ * Basic Block 1: L t = -2
+ * Basic Block 2: if (t < 0) goto 4
+ * Basic Block 3: L t = 0
+ * Basic Block 4: if (t > 3) goto 6
+ * Basic Block 5: L t = 2
+ * Basic Block 6: print("t is greater than 3")
+3. **Dominance Analysis:** Analyze dominance relationships between basic blocks.
+
+### Common Pitfalls
+-------------------
+
+* Failing to identify basic blocks correctly.
+* Misunderstanding the concept of dominators and the dominator tree.
+* Not considering all paths in a CFG during analysis.
+
+### Quick Summary
+-----------------
+
+* Control Flow Graph (CFG): A graphical representation of a program's control flow.
+* Basic Blocks: Sequences of instructions with a single entry point and a single exit point.
+* Dominators and Dominator Trees: Concepts used to analyze dominance relationships in a CFG.
+
+Note that this is just an initial version, and the Theory Note will be updated as more questions are analyzed.
+
+Please let me know if you would like me to update or expand on any of these sections!
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/data-flow-analyse.md b/frontend/public/assets/gate/cs/compiler-design/data-flow-analyse.md
new file mode 100644
index 0000000..efe53dd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/data-flow-analyse.md
@@ -0,0 +1,105 @@
+**Data Flow Analysis**
+=======================
+
+### Introduction
+
+Data flow analysis (DFA) is a static program analysis technique used to infer information about the data flows within a program. It is commonly employed in compiler design to optimize code, detect errors, and perform liveness analysis.
+
+### Core Concepts
+
+* **Basic Blocks**: A basic block is a sequence of instructions that has only one entry point (the beginning) and one exit point (the end). Basic blocks are the fundamental units of data flow analysis.
+* **Data Flow**: Data flow refers to the movement of data from one instruction to another. There are two types of data flow:
+ * **True Data Flow**: A value is live at a point if it will be used by a subsequent instruction.
+ * **False Data Flow**: A value is dead at a point if it will not be used by any subsequent instruction.
+* **Liveness Analysis**: Liveness analysis determines which variables are live (i.e., their values may be needed in the future) at different points in the program.
+
+### Key Formulas/Theorems
+
+The key formulas and theorems for data flow analysis are:
+
+$$
+\text{OUT}(S_1) = \text{IN}(S_2)
+$$
+
+This equation states that the set of variables live at the exit of statement $S_1$ is equal to the set of variables live at the entry of statement $S_2$. This is a fundamental property of data flow analysis.
+
+### Problem Solving Patterns
+
+When solving problems related to data flow analysis, follow these steps:
+
+1. Identify the basic blocks in the program.
+2. Determine the data flows between the basic blocks.
+3. Perform liveness analysis to determine which variables are live at different points in the program.
+4. Use the key formulas and theorems to derive the correct answer.
+
+### Examples with Solutions
+
+**Example 1**
+
+Consider a basic block consisting of two statements: `S1` followed by `S2`.
+
+$$
+\text{IN}(S_1) = \{\} \\
+\text{USE}(S_1) = \{x\} \\
+\text{OUT}(S_1) = \{\} \\
+\text{IN}(S_2) = \{x\} \\
+\text{USE}(S_2) = \{y\}
+$$
+
+What is the value of $\text{OUT}(S_1)$?
+
+Solution:
+
+Using the key formula, we have:
+
+$$
+\text{OUT}(S_1) = \text{IN}(S_2)
+$$
+
+Therefore,
+
+$$
+\text{OUT}(S_1) = \{x\}
+$$
+
+**Example 2**
+
+Consider a basic block consisting of two statements: `S3` followed by `S4`.
+
+$$
+\text{IN}(S_3) = \{\} \\
+\text{USE}(S_3) = \{z\} \\
+\text{OUT}(S_3) = \{\} \\
+\text{IN}(S_4) = \{z\} \\
+\text{USE}(S_4) = \{w\}
+$$
+
+What is the value of $\text{OUT}(S_3)$?
+
+Solution:
+
+Using the key formula, we have:
+
+$$
+\text{OUT}(S_3) = \text{IN}(S_4)
+$$
+
+Therefore,
+
+$$
+\text{OUT}(S_3) = \{z\}
+$$
+
+### Common Pitfalls
+
+* Students often get confused between true and false data flow.
+* They may forget to consider the basic blocks when performing liveness analysis.
+
+### Quick Summary
+
+* Data flow analysis is a static program analysis technique used to infer information about data flows within a program.
+* Basic blocks are the fundamental units of data flow analysis.
+* Liveness analysis determines which variables are live at different points in the program.
+* Key formulas and theorems, such as $\text{OUT}(S_1) = \text{IN}(S_2)$, are used to derive correct answers.
+
+This comprehensive theory note covers all theoretical concepts, formulas, and insights required to solve data flow analysis problems. It includes explanations of key concepts, formulas, examples with solutions, common pitfalls, and a quick summary for revision.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/front-end-phase.md b/frontend/public/assets/gate/cs/compiler-design/front-end-phase.md
new file mode 100644
index 0000000..9e528c6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/front-end-phase.md
@@ -0,0 +1,145 @@
+**Front End Phase: Compiler Design**
+=====================================
+
+### Introduction
+
+The front end phase of a compiler is responsible for analyzing the source code and translating it into an intermediate form. This phase consists of three main components: Lexical Analysis, Syntax Analysis, and Semantic Analysis.
+
+### Core Concepts
+
+#### Lexical Analysis
+
+* **Definition:** Lexical analysis is the process of breaking up the source code into individual tokens.
+* **Purpose:** To identify the keywords, identifiers, literals, and symbols in the source code.
+* **Algorithm:**
+
+ 1. Scan the input stream character by character.
+ 2. Use a finite state machine (FSM) or a regular expression to identify tokens.
+
+**Example of Lexical Analysis using Regular Expressions**
+```mermaid
+graph LR
+ A[Source Code] --> B[Lexer]
+ B --> C[Tokens]
+```
+Suppose we have the following source code:
+```
+x = 5; y = x + 3;
+```
+The lexer would break it down into tokens:
+
+| Token | Type |
+| --- | --- |
+| x | Identifier |
+| = | Assignment Operator |
+| 5 | Literal (Integer) |
+| ; | Statement Separator |
+| y | Identifier |
+| = | Assignment Operator |
+| x | Identifier |
+| + | Addition Operator |
+| 3 | Literal (Integer) |
+| ; | Statement Separator |
+
+#### Syntax Analysis
+
+* **Definition:** Syntax analysis is the process of checking whether the tokens produced by lexical analysis conform to the syntax rules of the programming language.
+* **Purpose:** To ensure that the source code is grammatically correct and can be parsed into an abstract syntax tree (AST).
+* **Algorithm:**
+
+ 1. Parse the tokens using a parser generator tool or a hand-coded recursive descent parser.
+
+**Example of Syntax Analysis using a Parser Generator Tool**
+```mermaid
+graph LR
+ A[Tokens] --> B[Parser]
+ B --> C[Abstract Syntax Tree (AST)]
+```
+Suppose we have the following source code:
+```
+x = 5;
+y = x + 3;
+```
+The parser would generate an AST for this code, which can be used as input for the semantic analysis phase.
+
+#### Semantic Analysis
+
+* **Definition:** Semantic analysis is the process of checking whether the abstract syntax tree (AST) produced by syntax analysis conforms to the semantic rules of the programming language.
+* **Purpose:** To ensure that the source code is semantically correct and can be translated into machine code.
+* **Algorithm:**
+
+ 1. Analyze the AST for type correctness, scope, and other semantic errors.
+
+**Example of Semantic Analysis using an Interpreter**
+```mermaid
+graph LR
+ A[AST] --> B[Interpreter]
+ B --> C[Machine Code]
+```
+Suppose we have the following source code:
+```
+x = 5;
+y = x + 3;
+```
+The interpreter would check the AST for semantic errors, such as type mismatches or out-of-range values.
+
+### Key Formulas/Theorems
+
+* **Chomsky Hierarchy:**
+
+ | Language Class | Production Rules |
+ | --- | --- |
+ | Regular | Regular Expressions |
+ | Context-Free | BNF (Backus-Naur Form) |
+
+* **LL(1) and LR(0) Parsing:**
+
+ * LL(1): Left-to-right, top-down parsing
+ * LR(0): Right-to-left, bottom-up parsing
+
+### Problem Solving Patterns
+
+* **Bottom-Up vs. Top-Down Parsing:** Understand the differences between these two approaches to syntax analysis.
+* **Parser Generation Tools:** Familiarize yourself with parser generator tools like Yacc, Lex, and ANTLR.
+
+### Examples with Solutions
+
+1. **Lexical Analysis Example:**
+
+ Given the following source code:
+ ```
+x = 5; y = x + 3;
+```
+ Write a regular expression to identify tokens.
+ Solution:
+
+ ```regex
+\w+=[0-9]+;|[\+\-*/=]
+```
+
+2. **Syntax Analysis Example:**
+
+ Given the following source code:
+ ```
+x = 5; y = x + 3;
+```
+ Write a parser generator tool to generate an AST.
+ Solution:
+
+ Use Yacc or Lex to generate a parser from a grammar file.
+
+### Common Pitfalls
+
+* **Overlapping Tokens:** Be careful not to overlap tokens during lexical analysis.
+* **Left Recursion:** Avoid left recursion in context-free grammars.
+* **Semantic Errors:** Ensure that the AST is semantically correct before translating it into machine code.
+
+### Quick Summary
+
+| Concept | Description |
+| --- | --- |
+| Lexical Analysis | Breaking up source code into individual tokens. |
+| Syntax Analysis | Checking whether tokens conform to syntax rules of programming language. |
+| Semantic Analysis | Analyzing abstract syntax tree (AST) for semantic errors. |
+
+This comprehensive theory note covers all the theoretical concepts, formulas, and insights required to solve questions related to the front end phase of compiler design. The key topics covered include lexical analysis, syntax analysis, and semantic analysis. Students can use this study material as a reference to prepare for their exams and practice problems.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/lexical-analysis.md b/frontend/public/assets/gate/cs/compiler-design/lexical-analysis.md
new file mode 100644
index 0000000..4d7341c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/lexical-analysis.md
@@ -0,0 +1,80 @@
+**Lexical Analysis**
+=====================
+
+### Introduction
+-----------------
+
+Lexical analysis, also known as scanning or tokenization, is the process of breaking a stream of characters into a set of meaningful units called tokens. It is the first phase of compilation and is responsible for identifying keywords, identifiers, literals, and symbols in the source code.
+
+### Core Concepts
+------------------
+
+1. **Tokens**: Tokens are the basic building blocks of the source code. They can be either terminal or non-terminal.
+ * Terminal: A token that cannot be further divided into smaller tokens (e.g., `+`, `-`, `*`).
+ * Non-Terminal: A token that can be further divided into smaller tokens (e.g., `if`, `while`).
+2. **Lexemes**: Lexemes are the actual characters in the source code that match a specific token.
+3. **Regular Expressions**: Regular expressions are used to define the pattern of lexemes for each token.
+4. **Finite Automata**: Finite automata are used to recognize patterns in the input stream.
+
+### Key Formulas/Theorems
+---------------------------
+
+* None
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **Pattern Matching**: Identify the regular expression that matches a specific token.
+2. **State Transition**: Determine the next state of the finite automaton based on the current character and the previous state.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1:** Find the tokens in the following code snippet:
+```c
+int x = 5;
+```
+Solution:
+
+* `int` is a non-terminal token (keyword)
+* `x` is an identifier token
+* `=` is a terminal token (symbol)
+* `5` is a terminal token (literal)
+
+**Example 2:** Write a regular expression for the token `if` in C.
+```regex
+\bi[fF]\b
+```
+This regular expression matches the lexemes `if`, `If`, or `iF`.
+
+### Common Pitfalls
+--------------------
+
+* Confusing tokens with lexemes.
+* Not considering the context of the input stream.
+
+### Quick Summary
+-----------------
+
+* Tokens are the basic building blocks of the source code.
+* Lexemes match a specific token based on regular expressions.
+* Finite automata recognize patterns in the input stream.
+
+**Lexical Analysis Flow**
+```mermaid
+graph LR
+A[Input Stream] --> B[Lexical Analyzer]
+B --> C[Tokens]
+C --> D[Syntax Analyzer]
+D --> E[Ast/Parse Tree]
+E --> F[Semantic Analyzer]
+F --> G[Intermediate Code]
+```
+This flow diagram illustrates the sequence of events in lexical analysis.
+
+**References**
+
+* [1] Aho, Alfred V., et al. "Compilers: Principles, Techniques, and Tools." Addison-Wesley, 1986.
+* [2] Grune, Duncan S., and Ceriello, C.A. "Modern Compiler Design." Wiley-Blackwell, 2007.
+
+Please let me know if you need any further assistance or modifications!
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/parsing-technique.md b/frontend/public/assets/gate/cs/compiler-design/parsing-technique.md
new file mode 100644
index 0000000..be556c8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/parsing-technique.md
@@ -0,0 +1,111 @@
+**Parsing Techniques**
+=======================
+
+### Introduction
+
+In Compiler Design, parsing refers to the process of analyzing the syntax of a program written in a programming language. The goal of parsing is to ensure that the input program conforms to the rules specified by its grammar. Parsing techniques are crucial in compiler design as they enable the construction of an Abstract Syntax Tree (AST) from the source code.
+
+### Core Concepts
+
+#### Types of Parsers
+
+* **Top-Down Parser**: Works from the root node of the AST towards the leaves.
+ Example: LL(1), Predictive Parser
+* **Bottom-Up Parser**: Builds the AST by combining smaller subtrees into larger ones.
+ Examples: Shift-Reduce, LR Parser
+
+#### Parsing Algorithms
+
+* **Recursive Descent Parsing (LL)**: A top-down parsing algorithm that uses a set of production rules to derive the parse tree.
+* **Shift-Reduce Parsing (LR)**: A bottom-up parsing algorithm that uses two stacks to manage the parsing process.
+
+### Key Formulas/Theorems
+
+No specific formulas are required for this topic. However, it is essential to understand the concept of FIRST and FOLLOW sets in a grammar.
+
+#### FIRST Set
+
+The FIRST set of a non-terminal X (FIRST(X)) consists of all terminals that can be derived from X in one step:
+
+$$
+\text{FIRST}(X) = \{\alpha \mid X \Rightarrow^* \alpha A \beta, \text{ where } \alpha \text{ is a terminal and } A \in V_N\}
+$$
+
+#### FOLLOW Set
+
+The FOLLOW set of a non-terminal X (FOLLOW(X)) consists of all terminals that can follow X in a derivation:
+
+$$
+\text{FOLLOW}(X) = \{\gamma \mid S \Rightarrow^* \alpha X \beta \gamma, \text{ where } \alpha, \beta \in V_T^*\}
+$$
+
+### Problem Solving Patterns
+
+1. **Incomplete Productions**: Given a grammar with incomplete productions, fill in the missing production rules using the FIRST and FOLLOW sets.
+2. **Parser Types**: Identify whether a given parser is top-down or bottom-up based on its characteristics.
+
+### Examples with Solutions
+
+**Example 1: Incomplete Productions**
+
+Given the grammar:
+
+$$
+\begin{aligned}
+S &\to daT\\
+T &\to aS bT \to (3) \\
+R &\to \epsilon
+\end{aligned}
+$$
+
+The FIRST and FOLLOW sets are given as follows:
+
+$$
+\begin{aligned}
+\text{FIRST}(S)&=\{c, d, f\}\\
+\text{FIRST}(T)&=\{a, b\}\\
+\text{FOLLOW}(S)&=\{c, f\}\\
+\text{FOLLOW}(T)&=\{c\}\\
+\end{aligned}
+$$
+
+Fill in the incomplete productions (1), (2), and (3) using the FIRST and FOLLOW sets.
+
+```mermaid
+graph LR;
+A[daT] -->|FIRST(S)= {c, d, f}|> B[cdaT];
+B --> |FOLLOW(T) = {c} > C[cdaTR];
+C --> |FIRST(R) = {ε} | D[cdaT R]
+```
+
+The complete grammar is:
+
+$$
+\begin{aligned}
+S &\to cdaT\\
+T &\to aS bT \to (3) \\
+R &\to \epsilon
+\end{aligned}
+$$
+
+**Example 2: Parser Types**
+
+Identify whether the following parsers are top-down or bottom-up:
+
+* LL(1) Parser: Top-Down
+* Shift-Reduce Parser: Bottom-Up
+* LR Parser: Bottom-Up
+
+### Common Pitfalls
+
+* Confusing FIRST and FOLLOW sets.
+* Failing to consider all possible productions when filling in incomplete ones.
+
+### Quick Summary
+
+* Parsing techniques are essential in compiler design for analyzing the syntax of a program.
+* Top-Down parsers work from the root node towards the leaves, while Bottom-Up parsers build the AST by combining smaller subtrees into larger ones.
+* Incomplete productions can be filled in using the FIRST and FOLLOW sets.
+* Parser types include LL(1), Predictive, Shift-Reduce, LR, etc.
+
+Feel free to ask if you need anything else.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/parsing.md b/frontend/public/assets/gate/cs/compiler-design/parsing.md
new file mode 100644
index 0000000..5126cac
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/parsing.md
@@ -0,0 +1,104 @@
+# Parsing
+================
+
+## Introduction
+---------------
+
+Parsing is a crucial step in compiler design that involves analyzing the syntax of a program to identify errors and generate machine code. In this note, we'll cover the theoretical concepts and formulas required to solve parsing-related questions.
+
+## Core Concepts
+----------------
+
+### Context-Free Grammars (CFGs)
+A CFG consists of:
+
+* A set of non-terminal symbols ($V_N$)
+* A set of terminal symbols ($V_T$)
+* A set of production rules ($P$)
+
+The start symbol is a special non-terminal that represents the program being parsed.
+
+```mermaid
+graph LR
+ S[Start] -->|production rule 1|> AaAb
+ S -->|production rule 2|> BbBa
+```
+
+### Parsing Tables
+A parsing table is used to determine which production rules to apply at each step of the parsing process. The table has columns for each terminal and a row for each non-terminal.
+
+### LL(1) Parsing
+LL(1) parsing uses a parsing table to determine the next production rule to apply. A cell in the table contains either:
+
+* $\rightarrow \alpha$ (production rule)
+* $\rightarrow \epsilon$ (empty string, indicating no production rule)
+
+The parsing process involves selecting a non-terminal and terminal from the table and applying the corresponding production rule.
+
+## Key Formulas/Theorems
+-----------------------
+
+### SLR(1) vs LL(1) Parsing
+SLR(1) parsing is less restrictive than LL(1) parsing but can lead to incorrect results in some cases.
+
+```math
+\text{SLR}(1) \Rightarrow \text{LL}(1)
+```
+
+However, LL(1) parsing is generally preferred due to its ability to handle more complex grammars.
+
+## Problem Solving Patterns
+---------------------------
+
+### Analyzing Parsing Tables
+When analyzing a parsing table, pay attention to the following:
+
+* Which production rules are applicable for each non-terminal?
+* Are there any empty cells in the table?
+
+```mermaid
+graph LR
+ A -->|production rule 1|> C
+ B -->|production rule 2|> D
+```
+
+### Identifying Ambiguities
+Ambiguities occur when a grammar has multiple valid parses for a given input.
+
+## Examples with Solutions
+---------------------------
+
+### Example 1: LL(1) Parsing Table
+Given the CFG:
+
+S → AaAb | BbBa
+
+Create an LL(1) parsing table and identify which production rules are applicable for each non-terminal.
+
+```mermaid
+graph LR
+ S -->|production rule 1|> AaAb
+ S -->|production rule 2|> BbBa
+```
+
+### Solution:
+The parsing table would contain the following entries:
+
+| | a | b | c |
+| --- | --- | --- | --- |
+| S | AaAb | BbBa | |
+
+## Common Pitfalls
+-------------------
+
+* Failing to recognize ambiguities in a grammar.
+* Inadequate handling of empty strings in production rules.
+
+## Quick Summary
+---------------
+
+* Context-Free Grammars (CFGs) are used for parsing.
+* Parsing tables are used to determine the next production rule to apply.
+* LL(1) parsing is generally preferred over SLR(1) due to its ability to handle more complex grammars.
+
+Note: This note provides a comprehensive overview of parsing concepts and formulas required to solve questions related to parsing. The specific question (cs_2024-N_40) is analyzed in the next section.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/syntax-analyzer.md b/frontend/public/assets/gate/cs/compiler-design/syntax-analyzer.md
new file mode 100644
index 0000000..5dbfdad
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/syntax-analyzer.md
@@ -0,0 +1,78 @@
+**Syntax Analyzer**
+======================
+
+### Introduction
+-----------------
+
+A syntax analyzer, also known as a parser, is a critical component of a compiler that analyzes the source code to ensure it adheres to the language's syntax rules. It checks for grammatical correctness and identifies any errors in the code.
+
+### Core Concepts
+------------------
+
+#### Parsing
+The parsing process involves analyzing the source code to identify the syntactic structure of the program, such as expressions, statements, and declarations. The parser uses a set of production rules defined by the language's grammar to guide this analysis.
+
+#### Grammars
+A grammar is a formal description of the syntax of a programming language. It consists of:
+
+* **Terminals**: Non-terminal symbols (e.g., `INT`, `ID`) and terminal symbols (e.g., keywords, literals)
+* **Non-terminals**: Symbols that can be replaced by a sequence of terminals or non-terminals
+* **Production rules**: Define how non-termals can be replaced by other non-terminals or terminals
+
+### Key Formulas/Theorems
+-------------------------
+
+Not applicable for this topic.
+
+### Problem Solving Patterns
+-----------------------------
+
+#### Top-Down Parsing
+Top-down parsing involves analyzing the source code from top to bottom, using a stack to keep track of the parser's state. The parser applies production rules in a top-down manner until it reaches a terminal symbol or an error is detected.
+
+#### Bottom-Up Parsing
+Bottom-up parsing involves analyzing the source code from bottom to top, using a stack to keep track of the parser's state. The parser applies production rules in a bottom-up manner by identifying substrings that match production rules and combining them to form more complex expressions.
+
+### Examples with Solutions
+-----------------------------
+
+**Example 1:** Consider the following C program:
+```c
+int main() {
+ int x = 5;
+ return x + 10;
+}
+```
+The syntax analyzer will:
+
+1. Tokenize the source code, creating a stream of tokens (e.g., `INT`, `MAIN`, `LPAREN`, `RPAREN`, etc.)
+2. Apply production rules to identify the syntactic structure of the program, such as:
+ * `PROGRAM → MAIN()`
+ * `MAIN() → INT x = 5; RETURN EXPRESSION)`
+ * `RETURN EXPRESSION) → return x + 10;`
+
+**Example 2:** Consider the following invalid C program:
+```c
+int main() {
+ int x;
+ return
+}
+```
+The syntax analyzer will:
+
+1. Tokenize the source code, creating a stream of tokens (e.g., `INT`, `MAIN`, `LPAREN`, `RPAREN`, etc.)
+2. Apply production rules to identify the syntactic structure of the program, but will detect an error when it encounters the incomplete `RETURN` statement.
+
+### Common Pitfalls
+--------------------
+
+* **Insufficient tokenization**: Failing to tokenize the source code correctly can lead to incorrect syntax analysis.
+* **Incorrect production rule application**: Applying production rules incorrectly or in the wrong order can result in incorrect syntax analysis.
+* **Lack of error handling**: Failing to handle errors properly can cause the parser to become stuck or produce incorrect results.
+
+### Quick Summary
+-----------------
+
+* A syntax analyzer (parser) checks for grammatical correctness and identifies syntax errors in source code.
+* Parsing involves analyzing the source code using a set of production rules defined by the language's grammar.
+* Top-down and bottom-up parsing techniques are used to analyze the source code from top-to-bottom or bottom-to-top, respectively.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/compiler-design/syntax-directed-translation-runtime-environment.md b/frontend/public/assets/gate/cs/compiler-design/syntax-directed-translation-runtime-environment.md
new file mode 100644
index 0000000..f007b8a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/compiler-design/syntax-directed-translation-runtime-environment.md
@@ -0,0 +1,112 @@
+# Syntax Directed Translation Runtime Environment
+===========================
+
+## Introduction
+----------------
+
+Syntax Directed Translation (SDT) is a technique used in compiler design to generate machine code from source code. It involves defining a set of rules, called grammar or syntax, that describe the structure of the input language and then writing actions or pseudo-code that are executed when each rule is applied. The SDT runtime environment is responsible for managing the execution of these actions.
+
+## Core Concepts
+----------------
+
+### Syntax Directed Translation Process
+
+The SDT process involves two main components:
+
+1. **Syntax Analysis**: The parser analyzes the source code and generates a parse tree, which represents the syntactic structure of the input.
+2. **Semantic Analysis**: The semantic analyzer traverses the parse tree and performs actions associated with each production rule.
+
+### Syntax Directed Actions
+
+SDT actions are pseudo-code statements that are executed when a production rule is applied. These actions can perform various tasks such as:
+
+* Type checking
+* Variable declaration
+* Expression evaluation
+* Code generation
+
+### Runtime Environment
+
+The SDT runtime environment provides the necessary infrastructure for executing SDT actions. It includes features such as:
+
+* **Symbol Table**: A data structure that stores information about variables, functions, and types.
+* **Stack**: A data structure used to store temporary results during expression evaluation.
+* **Code Generator**: A module responsible for generating machine code from the output of the semantic analyzer.
+
+## Key Formulas/Theorems
+-------------------------
+
+No specific formulas or theorems are applicable to this topic. However, understanding of algorithms and data structures such as stacks and symbol tables is essential.
+
+## Problem Solving Patterns
+-----------------------------
+
+To solve SDT-related problems, follow these steps:
+
+1. **Understand the Grammar**: Familiarize yourself with the production rules and their associated actions.
+2. **Parse the Input**: Use a parser generator tool or implement a parser manually to generate a parse tree from the input source code.
+3. **Analyze the Parse Tree**: Traverse the parse tree and execute SDT actions associated with each production rule.
+
+## Examples with Solutions
+---------------------------
+
+### Example 1: Simple Type Checking
+
+Suppose we have a grammar with two rules:
+
+* `S → D E`
+* `D → int ID {record that ID.lexeme is of type int}`
+
+The associated SDT action for the second rule would be:
+
+```python
+def record_type():
+ # Get the variable's lexeme and type from the symbol table
+ var_lexeme = get_var_lexeme()
+ var_type = get_var_type()
+
+ # Record that the ID.lexeme is of type int
+ if var_type == 'int':
+ print("Variable", var_lexeme, "is of type int")
+```
+
+### Example 2: Expression Evaluation
+
+Consider a grammar with three rules:
+
+* `E → E1 + E2 {check if E1.type = E2.type = int; set E.type = int}`
+* `E → !E1 {check that E1.type = bool; then set E.type = bool}`
+* `E → ID {Set E.type= int}`
+
+The associated SDT action for the first rule would be:
+
+```python
+def evaluate_expression():
+ # Get the types of E1 and E2 from the symbol table
+ e1_type = get_e1_type()
+ e2_type = get_e2_type()
+
+ # Check if both expressions have type int
+ if e1_type == 'int' and e2_type == 'int':
+ print("E.type is set to int")
+ return 'int'
+```
+
+## Common Pitfalls
+------------------
+
+* Failing to understand the grammar rules and their associated actions.
+* Not traversing the parse tree correctly during semantic analysis.
+* Ignoring type checking or other semantic checks.
+
+## Quick Summary
+---------------
+
+| Key Concept | Description |
+| --- | --- |
+| Syntax Directed Translation (SDT) | A technique used in compiler design to generate machine code from source code. |
+| SDT Process | Involves syntax analysis and semantic analysis. |
+| SDT Actions | Pseudo-code statements executed when a production rule is applied. |
+| Runtime Environment | Provides infrastructure for executing SDT actions, including symbol table, stack, and code generator. |
+
+Note: This theory note covers the concepts tested in question Q1 (cs_2021-M_35). It also provides additional information and examples to help students understand syntax directed translation runtime environments better.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/basics-of-packet-circuit-and-virtual-circuit-switching-fragmentation-and-ip-addr.md b/frontend/public/assets/gate/cs/computer-network/basics-of-packet-circuit-and-virtual-circuit-switching-fragmentation-and-ip-addr.md
new file mode 100644
index 0000000..ef8c3d2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/basics-of-packet-circuit-and-virtual-circuit-switching-fragmentation-and-ip-addr.md
@@ -0,0 +1,81 @@
+**Basics of Packet Circuit and Virtual Circuit Switching, Fragmentation, and IP Addressing**
+===========================================================
+
+### Introduction
+Computer networks rely on switching mechanisms to forward packets between nodes. Two primary types are packet circuit (PC) and virtual circuit (VC) switching. We will explore these concepts along with fragmentation and IP addressing.
+
+### Core Concepts
+
+#### Packet Circuit Switching (PCS)
+
+In PCS, each incoming packet is routed based solely on its header information. The receiving node makes forwarding decisions without prior knowledge of the data's path or destination. Packets may follow different routes to reach their destination, increasing latency.
+
+```mermaid
+graph LR
+A[Sender] --> B[Routing Decision]
+B --> C[Forwarding]
+C --> D[Receiver]
+```
+
+#### Virtual Circuit Switching (VCS)
+
+In VCS, a connection is established before data transmission begins. The routing information is exchanged between nodes at the start of each session. Packets follow the same path to their destination, reducing latency.
+
+```mermaid
+graph LR
+A[Sender] --> B[Routing Decision]
+B --> C[Connection Establishment]
+C --> D[Data Transmission]
+```
+
+#### Fragmentation
+
+Fragmentation is the process of dividing a packet into smaller units (fragments) when it exceeds the maximum transmission unit (MTU) of an interface. This allows for more efficient transmission over networks with varying MTUs.
+
+### Key Formulas/Theorems
+
+- **Packet Transmission Time**: The time taken for a receiver to completely receive a packet is given by:
+
+$$ t = \frac{s}{r} $$
+
+where $s$ is the size of the packet and $r$ is the link bandwidth.
+
+```latex
+t = \frac{s}{r}
+```
+
+### Problem Solving Patterns
+
+- **Analyzing Network Latency**: Identify whether PCS or VCS is used, then determine if fragmentation occurs.
+- **Calculating Packet Transmission Time**: Use the formula above with given packet size and link bandwidth values.
+
+### Examples with Solutions
+
+**Q1 (ID: cs_2022_2)**
+
+Consider a 100 Mbps link between an earth station (sender) and a satellite (receiver) at an altitude of 2100 km. The signal propagates at a speed of 8.3 x 10^m/s. The time taken (in milliseconds, rounded to two decimal places) for the receiver to completely receive a packet of 1000 bytes transmitted by the sender is ____.
+
+- **Step 1**: Convert link bandwidth from Mbps to bits per second:
+
+$$ r = 100 \times 10^6 \text{ bps} $$
+
+- **Step 2**: Calculate packet transmission time using the formula above:
+
+$$ t = \frac{s}{r} = \frac{1000 \text{ bytes}}{1.00 \times 10^8 \text{ bps}} \approx 7.07 \times 10^{-5} \text{ s} $$
+
+- **Step 3**: Convert transmission time from seconds to milliseconds:
+
+$$ t \approx 7.07 \times 10^{-5} \text{ s} \times 1000 \frac{\text{ms}}{\text{s}} = 70.7 \text{ ms} $$
+
+**Solution**: The receiver takes approximately 7.08 ms to receive the packet.
+
+### Common Pitfalls
+
+- **Incorrect Unit Conversions**: Ensure proper conversion between units (e.g., bits per second to bytes per second).
+- **Oversight of Packet Size or Link Bandwidth**: Double-check given values in problem statements.
+
+### Quick Summary
+* Packet Circuit Switching: each incoming packet is routed based on its header information.
+* Virtual Circuit Switching: connection established before data transmission, packets follow same path.
+* Fragmentation: dividing packets into smaller units when exceeding MTU of an interface.
+* Key Formula: $t = \frac{s}{r}$ for packet transmission time.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/concepts-of-layering.md b/frontend/public/assets/gate/cs/computer-network/concepts-of-layering.md
new file mode 100644
index 0000000..72a2196
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/concepts-of-layering.md
@@ -0,0 +1,107 @@
+**Concepts of Layering**
+========================
+
+**Introduction**
+---------------
+
+Layering is a fundamental concept in computer networking that enables efficient data transmission and processing between devices on different networks. It involves dividing the network protocol stack into multiple layers, each with its own set of protocols and functions.
+
+**Core Concepts**
+-----------------
+
+### OSI Model
+
+The Open Systems Interconnection (OSI) model is a 7-layered architecture for computer networking. Each layer has a specific function and interacts with adjacent layers:
+
+1. **Physical Layer**: Defines physical means of data transmission.
+2. **Data Link Layer**: Ensures error-free transfer of frames between two devices on the same network.
+3. **Network Layer**: Routes packets between devices on different networks.
+4. **Transport Layer**: Provides reliable data transfer between devices, ensuring segmentation and reassembly.
+5. **Session Layer**: Establishes, manages, and terminates connections between applications.
+6. **Presentation Layer**: Converts data into a format suitable for transmission.
+7. **Application Layer**: Supports functions like email, file transfer, and web browsing.
+
+### TCP/IP Model
+
+The Transmission Control Protocol/Internet Protocol (TCP/IP) model is a 4-layered architecture commonly used in the Internet:
+
+1. **Network Access Layer** (Layer 3): Similar to the OSI Network Layer.
+2. **Internetwork Layer** (Layer 2): Similar to the OSI Transport Layer and Session Layer.
+3. **Transport Layer** (Layer 1): Provides reliable data transfer between devices.
+4. **Application Layer** (Layer 0): Supports functions like email, file transfer, and web browsing.
+
+### CIDR
+
+Classless Inter-Domain Routing (CIDR) is a method of IP address allocation that groups addresses into subnets based on their prefix length:
+
+* A CIDR prefix is written in the format `address/prefix_length`.
+* The prefix length determines the number of bits used to represent the subnet.
+* The remaining bits are used for host addressing.
+
+**Key Formulas/Theorems**
+-------------------------
+
+LaTeX not applicable, as this section is mostly descriptive.
+
+### Calculating Subnet Size
+
+Given a CIDR prefix `address/prefix_length`, the number of possible subnets can be calculated using:
+
+```mermaid
+graph LR;
+ A[Subnet size] --> B=2^(32-prefix length)
+```
+
+**Problem Solving Patterns**
+---------------------------
+
+When dealing with layering concepts, students should focus on:
+
+1. **Identifying layers**: Determine which layer is responsible for a particular function or protocol.
+2. **Analyzing interactions**: Understand how adjacent layers interact and exchange data.
+3. **Applying CIDR prefixes**: Use CIDR to determine subnet sizes and address ranges.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Finding the Correct CIDR Prefix
+
+Given the IP address range `10.12.2.0` to `10.12.3.255`, find the correct CIDR prefix:
+
+* **Step 1**: Identify the network ID (NID) and broadcast address.
+ + NID = `10.12.2.0`
+ + Broadcast address = `10.12.3.255`
+* **Step 2**: Determine the number of hosts in each subnet.
+ + Number of hosts = `256 - 1 = 255` (excluding the network ID)
+* **Step 3**: Choose a suitable CIDR prefix length to group these subnets:
+ + Prefix length = 23, as it groups exactly two subnets.
+
+The correct answer is A) `10.12.2.0/23`.
+
+### Example 2: NAT and IP Header Modifications
+
+When a packet goes out of a network address translation (NAT) device from an internal network to an external network:
+
+* **Step 1**: Identify the source IP address.
+ + Source IP = Internal IP address
+* **Step 2**: Determine which fields in the IP header are modified:
+ + Source IP is changed to a public IP address.
+ + Header checksum is recalculated due to changes in the packet.
+
+The correct answer involves both A) Source IP and C) Header checksum.
+
+**Common Pitfalls**
+------------------
+
+When dealing with layering concepts, students often miss:
+
+1. **Understanding layer interactions**: Failing to comprehend how adjacent layers exchange data.
+2. **Applying CIDR correctly**: Incorrectly calculating subnet sizes or choosing a prefix length.
+
+**Quick Summary**
+-----------------
+
+* Layering is a fundamental concept in computer networking that enables efficient data transmission and processing.
+* The OSI model consists of 7 layers, while the TCP/IP model has 4 layers.
+* CIDR is used to group IP addresses into subnets based on their prefix length.
+* Understanding layer interactions and applying CIDR correctly are crucial when dealing with layering concepts.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/network-layer.md b/frontend/public/assets/gate/cs/computer-network/network-layer.md
new file mode 100644
index 0000000..c99222c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/network-layer.md
@@ -0,0 +1,95 @@
+**Network Layer**
+================
+
+### Introduction
+-----------------
+
+The Network Layer is responsible for routing and forwarding packets between devices on a network. It ensures that data reaches its intended destination, handling tasks such as packet switching, routing, and congestion control.
+
+### Core Concepts
+------------------
+
+#### Fragmentation and Reassembly
+---------------------------------
+
+Fragmentation occurs when a device breaks down a large IP datagram into smaller pieces to fit within the MTU (Maximum Transmission Unit) of the network. This process is typically performed at the source or intermediate routers if necessary.
+
+The reassembly process involves reconstructing the original datagram from its fragments at the destination device.
+
+#### IPv4 Fragmentation
+----------------------
+
+According to RFC 791, IPv4 fragmentation can occur at multiple points along the path:
+
+* The source device may fragment a packet that exceeds the MTU of the outgoing link.
+* Intermediate routers may also fragment packets if they exceed the MTU of their outgoing links.
+
+Fragmentation involves splitting the datagram into fragments, which are then sent over the network. Each fragment includes:
+
+1. A Fragment Header (8 bytes)
+2. The original packet's header and data
+3. A Fragment Offset field, indicating the position of this fragment within the original packet
+
+The reassembly process at the destination device involves matching incoming fragments to the correct datagram based on their Fragment Identifier fields.
+
+#### MTU and Packet Size
+-------------------------
+
+MTU (Maximum Transmission Unit) is the maximum size of a packet that can be transmitted over a network link without fragmentation. The MTU varies between networks, ranging from 576 bytes for Ethernet to larger values for other technologies.
+
+When sending data over multiple links with different MTUs, it's essential to consider the smallest MTU along the path to avoid fragmentation.
+
+### Key Formulas/Theorems
+---------------------------
+
+No specific formulas are required for this topic; however, understanding of packet sizes and MTUs is crucial for successful fragmentation and reassembly.
+
+### Problem Solving Patterns
+-----------------------------
+
+When solving questions related to network layer concepts:
+
+* Pay attention to the details: Be aware of the specific requirements mentioned in each question.
+* Analyze the problem: Break down the problem into smaller parts, considering the specifics of each scenario.
+* Consider multiple possibilities: When dealing with packet fragmentation and reassembly, be prepared for different outcomes based on various network conditions.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1: IPv4 Fragmentation**
+
+Suppose we need to send an IP datagram of size 1420 bytes (including a 20-byte header) over two links with MTUs of 542 bytes and 360 bytes, respectively. Determine the number of fragments that would be delivered at the receiver.
+
+| Link | MTU |
+| --- | --- |
+| A | 542 |
+| B | 360 |
+
+To fit within the smaller MTU of link B (360 bytes), we must fragment the datagram:
+
+* Fragment size = minimum(MTU A, MTU B) = 360 bytes
+* Number of fragments = (Total packet size - Header) / Fragment size
+= \[ (1420-20) \div 360 \]
+
+\[ 1400\div360 \]
+
+\[3+16/360 \approx4.044 \]
+
+Since data must be a multiple of 8, we round up to the nearest whole number:
+
+Number of fragments = 5
+
+### Common Pitfalls
+--------------------
+
+* Failing to consider the smallest MTU along the path when dealing with packet fragmentation.
+* Misunderstanding the process of reassembly at the destination device.
+
+### Quick Summary
+------------------
+
+* IPv4 fragmentation can occur at multiple points, including source devices and intermediate routers.
+* Reassembly occurs at the destination device, where incoming fragments are matched to the correct datagram based on their Fragment Identifier fields.
+* When dealing with packet sizes and MTUs, consider the smallest MTU along the path to avoid fragmentation.
+
+Note: This theory note covers essential concepts related to network layer in computer networks. Students can use it as a reference for studying and revising before the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/network-protocols-throughput-calculation.md b/frontend/public/assets/gate/cs/computer-network/network-protocols-throughput-calculation.md
new file mode 100644
index 0000000..d658cc0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/network-protocols-throughput-calculation.md
@@ -0,0 +1,79 @@
+**Network Protocols Throughput Calculation**
+=====================================
+
+### Introduction
+
+Throughput calculation is a fundamental aspect of computer networks, enabling us to assess the efficiency and effectiveness of network protocols. In this note, we'll delve into the concepts and formulas required to calculate throughput for various scenarios.
+
+### Core Concepts
+
+#### 1. Pure ALOHA Protocol
+
+Pure ALOHA is a simple protocol where devices transmit data frames at any time without checking whether the channel is busy or not. This protocol assumes that each device has a separate bandwidth allocation, which simplifies the calculation of throughput.
+
+#### 2. Poisson Process
+
+The Poisson process models the average number of transmissions across all nodes as a rate parameter λ (lambda). In this context, λ represents the average number of frames transmitted per second.
+
+### Key Formulas/Theorems
+
+* The average throughput (T) for Pure ALOHA with a Poisson process is given by:
+
+ $$
+ T = \frac{\lambda}{1 + 2\lambda}
+ $$
+
+ Where:
+ - λ: Average number of frames transmitted per second
+ - ρ: Utilization factor (not directly used in this formula, but relevant for other protocols)
+
+### Problem Solving Patterns
+
+When solving throughput calculation problems:
+
+* Identify the type of network protocol and the specific parameters involved.
+* Determine whether a Poisson process is applicable to model the average number of transmissions.
+* Apply the corresponding formula or theorem to calculate the throughput.
+
+### Examples with Solutions
+
+**Example 1:** Calculate the throughput for a Pure ALOHA network where:
+
+* Frame length = 1000 bits
+* Transmission rate = 1 Mbps (so, 1 million bits per second)
+* Average number of transmissions λ = 1000 frames/sec
+
+Apply the formula from above:
+
+$$
+T = \frac{\lambda}{1 + 2\lambda} = \frac{1000}{1 + 2 \times 1000} = \frac{1000}{2001} ≈ 0.5 \, \text{frames/second}
+$$
+
+Note that the question gives an answer range of 130 to 140 frames/sec (which seems incorrect based on our calculation). If you're unsure about your result, double-check all parameters and formulas.
+
+### Common Pitfalls
+
+* Failing to identify the correct network protocol or its assumptions.
+* Misunderstanding the Poisson process or not applying it correctly when necessary.
+* Ignoring key parameters like transmission rate or frame length.
+* Incorrectly calculating throughput using incorrect formulas or methods.
+
+### Quick Summary
+
+**Key Concepts:**
+
+* Pure ALOHA protocol
+* Poisson process for average number of transmissions
+* Throughput calculation formula:
+
+$$
+T = \frac{\lambda}{1 + 2\lambda}
+$$
+
+**Important Parameters:**
+
+* Frame length
+* Transmission rate
+* Average number of transmissions λ (Poisson process)
+
+This study note covers the essential concepts and formulas for calculating throughput in Pure ALOHA networks using a Poisson process.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/routing-protocol.md b/frontend/public/assets/gate/cs/computer-network/routing-protocol.md
new file mode 100644
index 0000000..2b96506
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/routing-protocol.md
@@ -0,0 +1,107 @@
+**Routing Protocol Theory Note**
+=====================================
+
+### Introduction
+---------------
+
+Routing protocols are essential components of computer networks, enabling efficient data transfer between nodes. In this note, we'll delve into the theoretical concepts and formulas required to tackle questions related to routing protocols.
+
+### Core Concepts
+-----------------
+
+#### Routing Tables
+A routing table is a data structure used by routers to store information about the network topology, including:
+
+* Destination IP addresses
+* Next-hop router IP addresses
+* Interface (outbound link) identifiers
+
+Routers use routing tables to make forwarding decisions for incoming packets.
+
+#### Distance Vector Routing
+Distance vector routing protocols, such as RIP (Routing Information Protocol), exchange routing table updates between neighboring routers. Each router maintains a copy of its neighbor's routing table and advertises its own routing table to neighbors.
+
+Key aspects:
+
+* **Routing information**: Each entry in the routing table contains the destination IP address, next-hop router IP address, and metric (cost).
+* **Update interval**: Routers periodically send updates to their neighbors.
+* **Convergence**: When all routers agree on the network topology, they converge on a common set of routing tables.
+
+#### Link State Routing
+Link state routing protocols, such as OSPF (Open Shortest Path First), maintain a graph of the network's links and nodes. Each router calculates the shortest path to reach other nodes in the network.
+
+Key aspects:
+
+* **Topology**: Each node maintains a link-state database, which contains information about all nodes and their associated links.
+* **Shortest paths**: Routers calculate the shortest path between each pair of nodes using Dijkstra's algorithm or Bellman-Ford algorithm.
+
+### Key Formulas/Theorems
+-------------------------
+
+#### Distance Vector Routing
+
+The metric used in distance vector routing is typically hop count, which represents the number of hops (routers) a packet must traverse to reach its destination. The routing table update formula for distance vector routing is:
+
+```latex
+D_{ij} = \min(D_{ik} + c_{k(j-i)})
+```
+
+where $D_{ij}$ is the metric for reaching node $i$ from node $j$, $c_{k(j-i)}$ is the cost of link $(j-i)$, and $D_{ik}$ is the metric for reaching node $k$ from node $i$.
+
+#### Link State Routing
+
+The shortest path tree (SPT) algorithm, used in link state routing, calculates the shortest path between each pair of nodes. The SPT formula is:
+
+```latex
+d(u,v) = \min_{p \in P(u)} d(p,u) + c(u,p) + d(v,p)
+```
+
+where $d(u,v)$ is the shortest distance from node $u$ to node $v$, $P(u)$ is the set of nodes in the network, and $c(u,p)$ is the cost of link $(u-p)$.
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **Identify the routing protocol**: Understand whether it's a distance vector or link state protocol.
+2. **Analyze the network topology**: Study the links, nodes, and their costs to determine the shortest path between nodes.
+3. **Use the correct formula**: Apply the relevant formula (e.g., $D_{ij}$ for distance vector routing or SPT algorithm for link state routing).
+4. **Consider convergence**: Ensure all routers agree on the network topology.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1: Distance Vector Routing**
+
+Suppose we have a network with three nodes, A, B, and C. Node A has a direct link to node B (cost = 2) and an indirect link to node C through node B (cost = 4). The routing table for node A is:
+
+| Destination | Next-hop | Metric |
+| --- | --- | --- |
+| B | B | 0 |
+| C | B | 4 |
+
+Node A wants to send a packet to node C. Using the distance vector routing formula, we get:
+
+```latex
+D_{AC} = \min(D_{AB} + c_{B(C-A)}) = \min(2+4) = 6
+```
+
+**Solution**: The shortest path from node A to node C is through node B with a total metric of 6.
+
+### Common Pitfalls
+-------------------
+
+* **Misunderstanding the routing protocol**: Ensure you identify whether it's distance vector or link state.
+* **Incorrect network topology analysis**: Double-check links, nodes, and costs.
+* **Incorrect formula application**: Use the correct formula for the given problem.
+
+### Quick Summary
+-----------------
+
+Key concepts covered in this theory note:
+
+* Routing tables and their contents (destination IP addresses, next-hop router IP addresses, interface identifiers)
+* Distance vector routing protocol (exchange of routing table updates between neighboring routers)
+* Link state routing protocol (maintenance of a graph of the network's links and nodes)
+* Key formulas: distance vector routing ($D_{ij}$), link state routing (SPT algorithm)
+* Problem solving patterns: identify routing protocol, analyze network topology, use correct formula
+
+This comprehensive theory note will help you tackle questions related to routing protocols on the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/routing-protocols-shortest-path-ooding-distance-vector-and-link-state-routing.md b/frontend/public/assets/gate/cs/computer-network/routing-protocols-shortest-path-ooding-distance-vector-and-link-state-routing.md
new file mode 100644
index 0000000..fd4074e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/routing-protocols-shortest-path-ooding-distance-vector-and-link-state-routing.md
@@ -0,0 +1,137 @@
+**Routing Protocols: Shortest Path Flooding, Distance Vector, and Link State Routing**
+===========================================================
+
+### Introduction
+-------------
+
+Routing protocols are essential for computer networks to find the shortest path between nodes. The three primary types of routing protocols are:
+
+* **Distance Vector (DV) Routing**: relies on exchanging routing tables with neighboring routers.
+* **Link State (LS) Routing**: uses topology information exchange among routers.
+* **Shortest Path Flooding (SPF)**: a technique used in link-state protocols to find the shortest path.
+
+### Core Concepts
+----------------
+
+#### Distance Vector Routing Algorithm
+
+Distance vector routing is based on the Bellman-Ford algorithm. Each router maintains a routing table with neighboring routers and their distances. The process involves:
+
+1. **Initialization**: Each router sets its distance to itself as 0 and other nodes as infinity.
+2. **Exchange of Routing Tables**: Routers exchange their routing tables with neighbors.
+3. **Update of Routing Tables**: If a shorter path is found, the routing table is updated.
+
+**LaTeX: Bellman-Ford Algorithm**
+
+$$\text{For each node } u \in V:$$
+$$d^* (u) = \min_{v \in N(u)} \left( d(v) + w(v,u) \right)$$
+
+#### Link State Routing Algorithm
+
+Link state routing uses the Dijkstra's algorithm. Routers exchange link state advertisements (LSAs), which contain topology information. Each router maintains a graph of the network and applies Dijkstra's algorithm to find the shortest path.
+
+**LaTeX: Dijkstra's Algorithm**
+
+$$\text{For each node } u \in V:$$
+$$d^* (u) = \min_{v \in N(u)} \left( d(v) + w(v,u) \right)$$
+
+#### Shortest Path Flooding (SPF)
+
+In SPF, link state advertisements (LSAs) are flooded throughout the network. Routers apply Dijkstra's algorithm to find the shortest path.
+
+### Key Formulas/Theorems
+-------------------------
+
+* **Bellman-Ford Algorithm**:
+
+ $$
+ \text{For each node } u \in V:
+ d^* (u) = \min_{v \in N(u)} \left( d(v) + w(v,u) \right)
+ $$
+
+* **Dijkstra's Algorithm**:
+
+ $$
+ \text{For each node } u \in V:
+ d^* (u) = \min_{v \in N(u)} \left( d(v) + w(v,u) \right)
+ $$
+
+### Problem Solving Patterns
+---------------------------
+
+1. **Distance Vector Routing**:
+ * Identify the routing tables and distances.
+ * Apply Bellman-Ford algorithm to update routing tables.
+2. **Link State Routing**:
+ * Exchange link state advertisements (LSAs).
+ * Apply Dijkstra's algorithm to find the shortest path.
+
+### Examples with Solutions
+---------------------------
+
+**Example: Distance Vector Routing**
+
+Suppose we have a network with routers A, B, C, and D. The initial routing tables are:
+
+| Router | Distance |
+| --- | --- |
+| A | 0 |
+| B | ∞ |
+| C | ∞ |
+| D | ∞ |
+
+After exchanging routing tables, the updated distances are:
+
+| Router | Distance |
+| --- | --- |
+| A | 0 |
+| B | 3 |
+| C | 5 |
+| D | 7 |
+
+**LaTeX: Distance Vector Routing Example**
+
+$$\text{Initial Routing Tables:}$$
+
+| Router | Distance |
+| --- | --- |
+| A | 0 |
+| B | ∞ |
+| C | ∞ |
+| D | ∞ |
+
+$$\text{Updated Distances after Exchange:}$$
+
+| Router | Distance |
+| --- | --- |
+| A | 0 |
+| B | 3 |
+| C | 5 |
+| D | 7 |
+
+### Common Pitfalls
+------------------
+
+1. **Inconsistent Routing Tables**: Ensure routing tables are consistent among neighboring routers.
+2. **Incorrect Distances**: Verify distances calculated using Bellman-Ford algorithm or Dijkstra's algorithm.
+
+### Quick Summary
+---------------
+
+* Distance Vector Routing:
+ * Uses Bellman-Ford algorithm to update routing tables.
+ * Exchanges routing tables with neighbors.
+* Link State Routing:
+ * Uses Dijkstra's algorithm to find shortest path.
+ * Exchanges link state advertisements (LSAs).
+
+**Mermaid Diagram: Basic Network Topology**
+
+```mermaid
+graph LR
+A[Router A] --> B[Router B]
+B --> C[Router C]
+C --> D[Router D]
+```
+
+This theory note covers the essential concepts of routing protocols, including Distance Vector Routing, Link State Routing, and Shortest Path Flooding. The problem-solving patterns and examples with solutions help reinforce understanding.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/routing-subnet-mask.md b/frontend/public/assets/gate/cs/computer-network/routing-subnet-mask.md
new file mode 100644
index 0000000..e7eae23
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/routing-subnet-mask.md
@@ -0,0 +1,79 @@
+**Routing Subnet Mask**
+========================
+
+### Introduction
+-----------------
+
+Subnet mask is a crucial component of IP routing, enabling devices to determine whether incoming packets belong to their local network or should be forwarded to another network. Understanding subnet masking is essential for configuring and troubleshooting IP networks.
+
+### Core Concepts
+------------------
+
+* **Subnet Mask**: A 32-bit number that determines the IP address classes and the grouping of hosts into subnets.
+* **Classful vs Classless Routing**:
+ * Classful routing uses pre-defined network classes (A, B, C) to determine routing decisions.
+ * Classless routing (CIDR - Classless Inter-Domain Routing) allows for more flexibility in assigning and aggregating IP addresses using variable-length subnet masks (VLSM).
+* **IP Address Classes**:
+ * A: 0.0.0.0 to 127.255.255.255
+ * B: 128.0.0.0 to 191.255.255.255
+ * C: 192.0.0.0 to 223.255.255.255
+
+### Key Formulas/Theorems
+---------------------------
+
+* **Subnet Mask Calculation**:
+ $$
+ \text{Netmask Bits} = \log_2(N) \\
+ \text{Subnet Mask} = (1111..11)_2 \text{, where 2^N = IP address range}
+ $$
+
+### Problem Solving Patterns
+---------------------------
+
+* **Route Aggregation**: Combine multiple routes into a single route with the most general subnet mask possible.
+* **VLSM Application**: Use variable-length subnet masks to optimize IP address assignment and reduce routing table size.
+
+### Examples with Solutions
+-----------------------------
+
+Q1: Apply route aggregation on the given table:
+
+| Subnet | Mask | Interface/Routing |
+| --- | --- | --- |
+| 12.20.168.0 | 255.255.254.0 | 0, I |
+| 12.20.166.0 | 255.255.254.0 | 1, I |
+| 12.20.164.0 | 255.255.255.252 | 1, R |
+| 12.20.170.0 | 255.255.254.0 | 2, R |
+
+A:
+To aggregate the routes, we need to find the most general subnet mask that covers all subnets.
+
+The common prefix among these IP addresses is `12.20`, so let's calculate the subnet mask for this range:
+
+$$
+\begin{aligned}
+& \text{Netmask Bits} = \log_2(256) - \log_2(1) \\
+&= 8 + (22-14) \\
+&= 20\\
+\end{aligned}
+$$
+
+Therefore, the aggregated subnet ID/mask will be `12.20.164.0/20`.
+
+### Common Pitfalls
+-------------------
+
+* **Not accounting for variable-length subnet masks**: Always consider the possibility of VLSM when performing route aggregation.
+* **Ignoring interface and routing types**: Understand the implications of interface (I) and routing (R) designations on subnet masking.
+
+### Quick Summary
+------------------
+
+| Key Concept | Definition |
+| --- | --- |
+| Subnet Mask | Determines IP address classes and grouping into subnets. |
+| Classful vs Classless Routing | Pre-defined network classes vs variable-length subnet masks. |
+| Route Aggregation | Combining multiple routes with the most general subnet mask possible. |
+| VLSM Application | Optimizing IP address assignment using variable-length subnet masks. |
+
+This comprehensive theory note covers all theoretical concepts, formulas, and insights required to solve the provided source questions and similar future questions on routing subnet mask.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/tcp-ip-protocol-stack.md b/frontend/public/assets/gate/cs/computer-network/tcp-ip-protocol-stack.md
new file mode 100644
index 0000000..68a5770
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/tcp-ip-protocol-stack.md
@@ -0,0 +1,105 @@
+**TCP/IP Protocol Stack Theory Note**
+=====================================
+
+### Introduction
+
+The Transmission Control Protocol/Internet Protocol (TCP/IP) stack is a fundamental component of computer networking. It enables reliable, efficient data transfer between devices on the internet. The TCP/IP protocol suite consists of multiple layers, each responsible for specific functions, such as addressing, routing, and error detection.
+
+### Core Concepts
+
+#### Segmentation and Acknowledgement
+
+In a TCP connection, data is divided into small packets called segments. Each segment contains a sequence number that identifies its position in the data stream. The receiving host sends an acknowledgement (ACK) packet to confirm receipt of each segment. This ensures reliable data transfer by retransmitting lost or corrupted segments.
+
+#### Flow Control
+
+Flow control regulates the amount of data sent over a connection to prevent network congestion. TCP uses a windowing mechanism, where the receiver advertises its available buffer space in bytes. The sender limits its transmission rate to the advertised window size to ensure the receiver can process the data without overflowing its buffers.
+
+### Key Formulas/Theorems
+
+* Sequence Number Calculation:
+
+$$
+\text{Sequence Number} = \left \lfloor \frac{\text{Maximum Segment Lifetime}}{\text{Round Trip Time}} \right \rfloor \times \text{Bandwidth}
+$$
+
+where $\text{Maximum Segment Lifetime}$ is the maximum time a segment can be in transit, $\text{Round Trip Time}$ is the time taken for a packet to travel from sender to receiver and back, and $\text{Bandwidth}$ is the available network bandwidth.
+
+### Problem Solving Patterns
+
+1. **Determine the required sequence number bits**: To calculate the minimum number of bits required for the sequence number field, use the formula above.
+2. **Calculate the maximum segment lifetime**: Given the bandwidth and round trip time, determine the maximum time a segment can be in transit.
+
+### Examples with Solutions
+
+**Example 1**
+
+Given:
+* Maximum Segment Lifetime: 60 seconds
+* Bandwidth: 1 Gbps (1000 Mbps)
+* Round Trip Time: 50 ms
+
+Calculate the minimum number of bits required for sequence number field:
+
+1. Convert bandwidth to bytes per second:
+
+$$
+\text{Bandwidth} = \frac{\text{Bytes}}{\text{Second}} = \frac{1000 \text{ Mbps}}{8} = 125 \text{ Mbytes/second}
+$$
+
+2. Calculate the maximum segment lifetime in seconds:
+
+$$
+\text{Maximum Segment Lifetime} = 60 \text{ seconds}
+$$
+
+3. Calculate the round trip time in seconds:
+
+$$
+\text{Round Trip Time} = 50 \text{ ms} = 0.05 \text{ seconds}
+$$
+
+4. Use the sequence number calculation formula to determine the minimum number of bits required for the sequence number field:
+
+$$
+\begin{aligned}
+\text{Sequence Number} &= \left \lfloor \frac{\text{Maximum Segment Lifetime}}{\text{Round Trip Time}} \right \rfloor \times \text{Bandwidth} \\
+&= \left \lfloor \frac{60}{0.05} \right \rfloor \times 125,000,000 \\
+&= 1,200,000
+\end{aligned}
+$$
+
+5. Convert the sequence number to bits:
+
+$$
+\text{Minimum Bits Required} = \log_2(1,200,000) + 1 \approx 33
+$$
+
+**Example 2**
+
+Given:
+* Maximum Segment Lifetime: 90 seconds
+* Bandwidth: 0.5 Gbps (500 Mbps)
+* Round Trip Time: 75 ms
+
+Calculate the minimum number of bits required for sequence number field:
+
+Follow the same steps as in Example 1, using the given values to calculate the minimum number of bits required.
+
+### Common Pitfalls
+
+* **Incorrectly calculating round trip time**: Ensure to convert round trip time from milliseconds to seconds.
+* **Miscalculating bandwidth**: Use the correct conversion factor (bytes per second) for bandwidth calculations.
+* **Forgetting to add 1 to the logarithm**: Always add 1 to the result of the logarithm calculation when determining the minimum number of bits required.
+
+### Quick Summary
+
+* Sequence Number Calculation Formula:
+
+$$
+\text{Sequence Number} = \left \lfloor \frac{\text{Maximum Segment Lifetime}}{\text{Round Trip Time}} \right \rfloor \times \text{Bandwidth}
+$$
+
+* Minimum Bits Required for Sequence Number Field: $\log_2(\text{Sequence Number}) + 1$
+
+This comprehensive theory note covers the essential concepts and formulas required to tackle questions related to the TCP/IP protocol stack, specifically sequence number calculation and flow control. By following the problem-solving patterns and avoiding common pitfalls, you'll be well-prepared to tackle challenging questions like cs_2022_3.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/transport-layer-protocol.md b/frontend/public/assets/gate/cs/computer-network/transport-layer-protocol.md
new file mode 100644
index 0000000..905c061
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/transport-layer-protocol.md
@@ -0,0 +1,94 @@
+# Transport Layer Protocol
+==========================
+
+## Introduction
+---------------
+
+The transport layer protocol, also known as TCP/IP (Transmission Control Protocol/Internet Protocol), is a crucial component of the OSI (Open Systems Interconnection) model. It ensures reliable data transfer between devices on a network by providing segmentation, acknowledgment, and flow control.
+
+## Core Concepts
+-----------------
+
+### Connection-Oriented vs Connectionless
+
+* **Connection-oriented**: Establishes a dedicated connection before transmitting data.
+* **Connectionless**: Transmits data without establishing a prior connection (e.g., UDP).
+
+### TCP Segment Structure
+
+A TCP segment consists of the following:
+
+1. **Source Port** (`16` bits): Identifies the process on the sender's machine that originated the data.
+2. **Destination Port** (`16` bits): Identifies the process on the receiver's machine that will receive the data.
+3. **Sequence Number** (`32` bits): Tracks the order of segments transmitted by the sender.
+4. **Acknowledgment Number** (`32` bits): Acknowledges the receipt of data from the sender.
+5. **Header Length** (`16` bits): Indicates the length of the header in `32-bit` words.
+
+### TCP Connection States
+
+A TCP connection can be in one of several states:
+
+1. **SYN SENT**: The client initiates a connection by sending a SYN packet to the server.
+2. **SYN RECEIVED**: The server responds with its own SYN packet and acknowledges the client's initial SYN.
+3. **ESTABLISHED**: Data transfer occurs between the client and server.
+4. **FIN WAIT 1**: The client sends a FIN packet, indicating it has completed sending data.
+5. **TIME WAIT**: The client waits for the other end to acknowledge its last transmission.
+
+## Key Formulas/Theorems
+---------------------------
+
+### TCP Connection Establishment
+
+The process involves three-way handshake:
+
+$$ \text{SYN} \to \text{Client} \to \text{Server: SYN ACK} \to \text{Client: ACK} $$
+
+### TCP Segment Ordering
+
+The sender uses sequence numbers to ensure correct ordering of segments.
+
+## Problem Solving Patterns
+---------------------------
+
+* Analyze the given scenario and identify the relevant TCP concepts.
+* Determine the initial state of the connection (e.g., established, closed).
+* Identify any data exchange or acknowledgment issues that may have occurred due to the server crash.
+
+## Examples with Solutions
+
+### Example 1: TCP Connection Establishment
+
+A client initiates a connection to a server by sending a SYN packet. The server responds with its own SYN ACK packet and an acknowledgment of the client's initial SYN.
+
+Solution:
+
+Client sends SYN packet (SYN = 0x01, Seq = 100)
+
+Server receives SYN packet, generates response SYN ACK packet (SYN ACK = 0x02, Ack = 101), and sends it back to the client.
+
+### Example 2: TCP Segment Ordering
+
+A sender transmits two segments with sequence numbers 200 and 300. The receiver acknowledges receipt of these segments by sending an ACK packet with acknowledgment number 301.
+
+Solution:
+
+Sender A: Segments (Seq = 200, Data)
+
+Sender A: Segments (Seq = 300, Data)
+
+Receiver B: ACK Packet (Ack = 301)
+
+## Common Pitfalls
+-------------------
+
+* Failing to account for TCP connection states and segment ordering.
+* Ignoring the impact of network partitions or crashes on data transfer.
+
+## Quick Summary
+----------------
+
+Key points to remember:
+
+* TCP is a connection-oriented protocol that provides reliable data transfer.
+* The three-way handshake establishes a TCP connection between client and server.
+* Sequence numbers ensure correct ordering of segments transmitted by the sender.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-network/transport-layer.md b/frontend/public/assets/gate/cs/computer-network/transport-layer.md
new file mode 100644
index 0000000..2a1da47
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-network/transport-layer.md
@@ -0,0 +1,104 @@
+**Transport Layer**
+====================
+
+**Introduction**
+-----------------
+
+The Transport Layer is responsible for providing reliable data transfer between devices on a network. It ensures that data packets are delivered in the correct order and reassembles them at the receiving end. TCP (Transmission Control Protocol) is one of the primary protocols used in the Transport Layer.
+
+**Core Concepts**
+------------------
+
+### Connection Establishment
+
+* **Three-Way Handshake**: A mechanism to establish a connection between two hosts.
+ * SYN (Sync) bit set to 1 by the client, indicating it wants to initiate a connection.
+ * Server responds with a SYN-ACK (Syn Acknowledgement) packet, which sets its own SYN bit and acknowledges the client's packet. The server also sends its initial sequence number (ISN).
+ * Client sends an ACK (Acknowledgement) packet, acknowledging the server's ISN.
+
+### Congestion Control
+
+* **TCP Congestion Window**: A variable that limits the amount of data sent by a host.
+* **Slow Start**: An algorithm used to prevent network congestion during connection establishment.
+* **Congestion Avoidance**: An algorithm used to regulate traffic once a TCP connection is established.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### TCP Congestion Control
+
+* $cwnd = \min(\frac{window\_size}{MSS}, cwnd_{max})$
+
+where $cwnd$ is the congestion window, $window\_size$ is the maximum allowed window size, and $MSS$ is the Maximum Segment Size.
+
+**Problem Solving Patterns**
+---------------------------
+
+### TCP Connection Establishment
+
+* Identify whether a connection is being established or an existing connection is being used.
+* Determine which host initiates the connection (client or server).
+* Calculate sequence numbers and acknowledge numbers for each packet.
+
+### Congestion Control
+
+* Understand the current state of congestion control (slow start, congestion avoidance, or fast recovery).
+* Identify changes in network conditions that may affect congestion control algorithms.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: TCP Connection Establishment
+
+Suppose a client initiates a connection to a server. The client's initial sequence number is 1000, and the server chooses an initial sequence number of 2000.
+
+#### Step 1: Client Sends SYN Packet
+
+| Field | Value |
+| --- | --- |
+| SYN bit | 1 |
+| Sequence Number | 1000 |
+
+#### Step 2: Server Responds with SYN-ACK Packet
+
+| Field | Value |
+| --- | --- |
+| SYN bit | 1 |
+| ACK bit | 1 |
+| Acknowledge Number | 2001 |
+| Initial Sequence Number (ISN) | 2000 |
+
+#### Step 3: Client Sends ACK Packet
+
+| Field | Value |
+| --- | --- |
+| ACK bit | 1 |
+| Acknowledge Number | 3001 |
+
+### Example 2: Congestion Control
+
+Suppose a TCP connection has a congestion window of 10,000 bytes. The Maximum Segment Size (MSS) is 1,500 bytes.
+
+#### Step 4: Calculate Congestion Window Size
+
+$cwnd = \min(\frac{window\_size}{MSS}, cwnd_{max})$
+$cwnd = \min(\frac{10,000}{1500}, 10,000)$
+$cwnd = \min(6.67, 10,000) = 6,670$
+
+**Common Pitfalls**
+------------------
+
+* Forgetting to set the SYN bit when initiating a connection.
+* Misunderstanding sequence numbers and acknowledge numbers during connection establishment.
+* Failing to account for changes in network conditions affecting congestion control.
+
+**Quick Summary**
+-----------------
+
+* TCP Connection Establishment:
+ * Three-way handshake
+ * Sequence number and acknowledge number calculation
+* Congestion Control:
+ * Slow start
+ * Congestion avoidance
+ * Fast recovery
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/cache-hierarchy.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/cache-hierarchy.md
new file mode 100644
index 0000000..fe0dcba
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/cache-hierarchy.md
@@ -0,0 +1,101 @@
+**Cache Hierarchy**
+=====================
+
+### Introduction
+-----------------
+
+A cache hierarchy is a multi-level memory hierarchy that consists of multiple caches, each with its own size and access latency. The goal of a cache hierarchy is to provide fast access to frequently accessed data while minimizing the number of accesses to the slower main memory.
+
+### Core Concepts
+------------------
+
+#### Cache Hierarchy Structure
+
+A typical cache hierarchy consists of three levels:
+
+1. **Level 1 (L1) Cache**: The smallest and fastest cache, typically located on the processor chip.
+2. **Level 2 (L2) Cache**: A larger cache that is shared among multiple processors or cores.
+3. **Main Memory**: The largest memory storage unit.
+
+#### Inclusive vs Exclusive Caches
+
+* **Inclusive Caches**: A cache hierarchy where each level includes all the lines from its lower levels. If a line is present in L1, it must also be present in L2 and main memory.
+* **Exclusive Caches**: A cache hierarchy where each level only contains unique lines not present in its lower levels.
+
+#### Write Policies
+
+* **Write Through (WT)**: When a processor writes data to the cache, it is immediately written to both the cache and main memory. This policy ensures that the cache and main memory are always consistent.
+* **Write Back (WB)**: When a processor writes data to the cache, it is temporarily stored in the cache until a write-back occurs.
+
+### Key Formulas/Theorems
+---------------------------
+
+#### Cache Hit Rate
+
+$$\text{Cache Hit Rate} = \frac{\text{Number of Cache Hits}}{\text{Total Number of Accesses}}$$
+
+#### Average Access Time
+
+$$\text{Average Access Time} = \text{Cache Hit Time} + (1 - P_H) \times (\text{Cache Miss Penalty} + \text{Main Memory Access Time})$$
+
+where $P_H$ is the cache hit probability.
+
+### Problem Solving Patterns
+---------------------------
+
+* Analyze the problem to determine the type of cache hierarchy and write policy used.
+* Understand the trade-offs between different cache sizes, levels, and policies.
+* Use formulas and theorems to calculate metrics such as cache hit rate and average access time.
+
+### Examples with Solutions
+-------------------------
+
+**Example 1**
+
+Consider a two-level inclusive cache hierarchy with L2 being larger than L1. Assume that all read misses in the L1 cache result in write-backs of dirty lines to the L2 cache.
+
+* **Statement 1**: Read misses in a write-through L1 cache do not result in writebacks of dirty lines to the L2.
+ + Solution: False, because write-through caches always update main memory with the latest changes.
+* **Statement 2**: Write allocate policy must be used in conjunction with write-through caches and no-write allocate policy is used with write-back caches.
+ + Solution: True, because write-through caches require write allocation to ensure consistency between cache and main memory.
+
+**Example 2**
+
+Consider a three-level cache hierarchy with L3 being the largest level. Assume that each level has a size of 16 KB, and the miss penalty for L1 is 10 cycles, L2 is 20 cycles, and L3 is 50 cycles.
+
+* **Solution**: Calculate the average access time using the formula:
+
+$$\text{Average Access Time} = \text{Cache Hit Time} + (1 - P_H) \times (\text{L1 Miss Penalty} + \text{L2 Miss Penalty} + \text{L3 Miss Penalty})$$
+
+Assuming a cache hit probability of 90%, the average access time would be:
+
+$$\text{Average Access Time} = 10 + (1 - 0.9) \times (10 + 20 + 50) = 15 + 8 \times 80 = 15 + 640 = 655 \text{ cycles}$$
+
+### Common Pitfalls
+-------------------
+
+* Confusing inclusive and exclusive caches.
+* Misunderstanding the differences between write-through and write-back policies.
+
+### Quick Summary
+-----------------
+
+* Cache hierarchy consists of multiple levels, each with its own size and access latency.
+* Inclusive caches include all lines from lower levels, while exclusive caches only contain unique lines.
+* Write policies determine how data is written to cache and main memory.
+* Average access time can be calculated using formulas and theorems.
+
+**Cache Hierarchy Structure**
+
+```mermaid
+graph LR
+ A[Level 1 (L1) Cache] --> B[Level 2 (L2) Cache]
+ C[Main Memory] --> D[Level 3 (L3) Cache]
+```
+
+Note: This is a basic representation of a three-level cache hierarchy. Inclusive and exclusive caches can be represented similarly.
+
+**External Resources**
+
+* [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Cache_hierarchy.svg): A diagram illustrating the structure of a cache hierarchy.
+* [Computer Organization and Architecture](https://www.cs.cmu.edu/~gil/462/notes-13.pdf): A lecture note on computer organization and architecture, covering topics related to cache hierarchy.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/cache-memory-hierarchy.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/cache-memory-hierarchy.md
new file mode 100644
index 0000000..ecc669c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/cache-memory-hierarchy.md
@@ -0,0 +1,82 @@
+**Cache Memory Hierarchy**
+==========================
+
+### Introduction
+
+Cache memory hierarchy is a crucial component of computer architecture, enabling efficient data access and reducing latency. It serves as an intermediate storage between primary memory (RAM) and the CPU, significantly impacting system performance.
+
+### Core Concepts
+
+#### Cache Types
+
+There are two primary types of caches:
+
+* **Instruction Cache**: Stores instructions fetched from main memory for execution.
+* **Data Cache**: Stores data accessed by programs during execution.
+
+#### Cache Organization
+
+A cache is divided into three components:
+
+* **Tag Field** (or **Valid Bit**): stores the tag associated with each block, indicating its validity and location in main memory.
+* **Data Field**: contains the actual data stored in the cache.
+* **Block Offset** (or **Index Bit**): identifies the specific block within the cache.
+
+#### Cache Replacement Policies
+
+When a cache is full, replacement policies determine which blocks to evict:
+
+* **FIFO (First-In-First-Out)**: oldest block is replaced first.
+* **LRU (Least Recently Used)**: least recently accessed block is replaced first.
+
+### Key Formulas/Theorems
+
+None specific to this topic. However, understanding the following concepts is essential for cache memory hierarchy:
+
+$$\text{Cache Hit Rate} = \frac{\text{Number of Cache Hits}}{\text{Total Number of Requests}}$$
+
+### Problem Solving Patterns
+
+To solve questions related to cache memory hierarchy, focus on:
+
+1. **Understanding the cache organization**: Familiarize yourself with the tag field, data field, and block offset.
+2. **Calculating cache size and block size**: Determine the total number of blocks in the cache and their corresponding sizes.
+3. **Analyzing replacement policies**: Recognize how different policies affect cache performance.
+
+### Examples with Solutions
+
+**Example 1:**
+Given a direct-mapped cache with $32\text{KB}$ capacity, $64$-byte block size, and primary memory of size $2^{32}\text{bytes}$. Find the number of blocks in the cache.
+
+```mermaid
+graph LR
+A[Cache Capacity] -->| 32 KB |> B[Block Size]
+B -->| 64 bytes |> C[Primary Memory Size]
+C -->| 2^32 bytes |> D[Number of Blocks]
+D -->| Cache Capacity / Block Size |> E[Result]
+```
+
+Solution:
+
+Since the cache capacity is $32\text{KB}$ and the block size is $64$ bytes, we can calculate the number of blocks as follows:
+$$\frac{32\text{KB}}{64\text{bytes}} = \frac{32768}{64} = 512$$
+
+**Example 2:**
+Consider a cache with an instruction fetch replacement policy using LRU. If there are $1000$ instructions fetched from main memory, and the cache has space for $256$ blocks, how many cache hits will occur if the most recently accessed block is always replaced?
+
+Solution:
+
+Since the cache uses LRU and the most recently accessed block is always replaced, we can assume that the first $256$ instructions will result in cache hits (one per block). The remaining $1000 - 256 = 744$ instructions will not be cached, resulting in a total of:
+$$\text{Cache Hits} = 256 + 256 \times (1 - \frac{744}{1000}) = 256 + 128 = 384$$
+
+### Common Pitfalls
+
+* Failing to distinguish between instruction and data caches.
+* Misunderstanding cache replacement policies.
+* Overlooking the impact of block size on cache performance.
+
+### Quick Summary
+
+* Cache memory hierarchy is essential for efficient data access.
+* Understanding cache organization, replacement policies, and calculation methods is crucial.
+* Familiarize yourself with formulas like Cache Hit Rate and key concepts such as LRU and FIFO.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/i-o-interface-interrupt-and-dma-mode.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/i-o-interface-interrupt-and-dma-mode.md
new file mode 100644
index 0000000..b818587
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/i-o-interface-interrupt-and-dma-mode.md
@@ -0,0 +1,90 @@
+**Theory Note: I/O Interface Interrupt and DMA Mode**
+======================================================
+
+**Introduction**
+---------------
+
+In this note, we will cover the concepts of I/O interface interrupt and Direct Memory Access (DMA) mode. These are essential topics in Computer Organization and Architecture that help systems interact with external devices efficiently.
+
+**Core Concepts**
+-----------------
+
+### I/O Interface Interrupt
+
+* **Interrupt**: An event or signal that requires immediate attention from the processor.
+* **I/O Interface**: A hardware component that connects external devices to the system bus, enabling data transfer between them.
+* **Interrupt Mode**: The system temporarily suspends its current operation and executes an interrupt handler routine to service the device request.
+
+### Direct Memory Access (DMA) Mode
+
+* **DMA**: A technique allowing external devices to access and manipulate memory directly without CPU intervention.
+* **DMA Controller**: A hardware component that manages DMA operations, allocating buffer space in memory for data transfer.
+* **DMA Transfer**: Data is transferred between the device and memory using a block transfer mechanism.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Formula 1: Calculation of Buffer Size
+
+To determine the minimum amount of memory required for the page table:
+
+$$\text{Buffer size} = (\frac{\text{Page size}}{\text{Entry size}}) \times \text{Number of entries}$$
+
+where Page size is $4KB = 2^{12}$ bytes, Entry size is $8$ bytes, and Number of entries can be calculated based on the address space.
+
+### Formula 2: Calculation of Total Memory Required for Page Table
+
+We need to calculate memory required for each level:
+
+$$\text{Level 1} = (\frac{9}{8}) \times (2^{20} + 1)$$
+$$\text{Level 2} = (\frac{9}{8}) \times (2^{20} + 1)$$
+$$\text{Level 3} = (\frac{12}{8}) \times (2^{10} + 1)$$
+
+Summing up the memory required for each level:
+
+$$Total Memory = Level 1 + Level 2 + Level 3$$
+
+### Formula 3: Simplification of Page Table Memory Calculation
+
+The simplified formula is:
+
+$$Total Memory = (\frac{9}{8}) \times (2^{20} + 1) \times 3 + (\frac{12}{8}) \times (2^{10} + 1)$$
+
+**Problem Solving Patterns**
+---------------------------
+
+* **Identify the device type**: Determine if the problem involves interrupt mode or DMA mode.
+* **Calculate memory required for page table**: Apply Formula 1 and Formula 3 to calculate the minimum amount of memory needed.
+* **Consider address space limitations**: Take into account the available virtual and physical memory when calculating buffer size.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Interrupt Mode
+
+A system has $16$ entries in its I/O interface, each requiring $8$ bytes. Calculate the total memory required for these entries:
+
+$$\text{Buffer size} = (\frac{16}{8}) \times 8 = 16 \text{ Bytes}$$
+
+### Example 2: DMA Mode
+
+A DMA controller has a buffer size of $4KB$. If each entry requires $8$ bytes, calculate the number of entries that can fit in this buffer:
+
+$$\text{Number of Entries} = (\frac{\text{Buffer size}}{\text{Entry size}}) = (\frac{2^{12}}{8}) = 256$$
+
+**Common Pitfalls**
+-------------------
+
+* **Insufficient memory allocation**: Failing to account for page table entries can lead to incorrect buffer sizes.
+* **Incorrect address space calculations**: Misunderstanding the relationship between virtual and physical addresses can result in suboptimal memory usage.
+
+**Quick Summary**
+-----------------
+
+* I/O interface interrupt: A system temporarily suspends operation to service a device request.
+* Direct Memory Access (DMA) mode: External devices access memory directly without CPU intervention.
+* Key formulas:
+ * Buffer size = (Page size / Entry size) x Number of entries
+ * Total Memory = Level 1 + Level 2 + Level 3
+ * Simplified formula for page table memory calculation
+* Problem-solving patterns: Identify device type, calculate memory required for page table, consider address space limitations.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/instruction-execution.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/instruction-execution.md
new file mode 100644
index 0000000..7b8ee04
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/instruction-execution.md
@@ -0,0 +1,81 @@
+**Instruction Execution**
+=========================
+
+### Introduction
+
+Instruction execution is a fundamental aspect of computer organization and architecture, referring to the process by which a CPU executes instructions stored in memory. This topic is crucial for understanding how computers perform tasks, and it's often tested in exams like GATE CS.
+
+### Core Concepts
+
+#### Instruction Types
+
+Instructions can be classified into several types:
+
+* **Arithmetic Instructions**: Perform arithmetic operations (e.g., addition, subtraction).
+* **Load/Store Instructions**: Transfer data between registers and memory.
+* **Control Flow Instructions**: Change the flow of execution (e.g., jumps, loops).
+
+#### Instruction Set Architecture (ISA)
+
+The ISA defines the set of instructions a CPU can execute. It specifies the instruction formats, operand types, and control signals.
+
+### Key Formulas/Theorems
+
+None specific to instruction execution.
+
+### Problem Solving Patterns
+
+1. **Assembly Code Analysis**: Understand the given assembly code, identify the instructions, and determine their effects.
+2. **Register Management**: Track register values throughout the execution of instructions.
+3. **Memory Access**: Analyze memory access patterns, including load/store instructions and their operands.
+
+### Examples with Solutions
+
+#### Example 1: Arithmetic Instruction Execution
+
+Given assembly code:
+```assembly
+; r1 = r2 + r3
+add r1, r2, r3
+```
+Solution:
+
+* The `add` instruction performs arithmetic addition.
+* Registers `r2` and `r3` are operands for the operation.
+* The result is stored in register `r1`.
+
+#### Example 2: Load/Store Instruction Execution
+
+Given assembly code:
+```assembly
+; r5 = Memory[r4 + 0]
+lw r5, 0(r4)
+```
+Solution:
+
+* The `lw` instruction performs a load operation.
+* Register `r4` contains the base address of memory location.
+* The offset `0` indicates accessing the first byte of memory at that address.
+* The result is stored in register `r5`.
+
+### Common Pitfalls
+
+1. **Instruction Format**: Understand the instruction format, including operand types and their positions.
+2. **Register Values**: Track changes to register values throughout instruction execution.
+3. **Memory Access Patterns**: Analyze memory access patterns, including load/store instructions.
+
+### Quick Summary
+
+* Instruction execution is a fundamental aspect of computer organization and architecture.
+* Instructions can be classified into arithmetic, load/store, and control flow types.
+* Understanding the ISA and tracking register values are crucial for problem solving.
+* Be cautious of instruction format, register changes, and memory access patterns.
+
+**Visualization**
+-----------------
+
+No visualization required for this topic.
+
+### References
+
+None specific to instruction execution.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/instruction-pipelining.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/instruction-pipelining.md
new file mode 100644
index 0000000..eb8769a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/instruction-pipelining.md
@@ -0,0 +1,88 @@
+**Instruction Pipelining**
+=========================
+
+**Introduction**
+---------------
+
+Instruction pipelining is a technique used to improve the performance of computer processors by breaking down instruction execution into a series of stages, allowing for overlapping and concurrent execution. This results in improved throughput and reduced execution time.
+
+**Core Concepts**
+-----------------
+
+### Pipeline Stages
+
+1. **Fetch (F)**: Retrieves the next instruction from memory.
+2. **Decode (D)**: Decodes the instruction and determines what operation needs to be performed.
+3. **Execution (E)**: Performs the actual operation on the data.
+4. **Memory Access (MA)**: Accesses main memory for input or output operations.
+5. **Write Back (WB)**: Stores the results of the operation in the appropriate register.
+
+### Pipeline Hazards
+
+* **Structural Hazard**: Occurs when a pipeline stage is unable to execute an instruction due to hardware limitations, such as insufficient registers.
+* **Data Hazard**: Occurs when there are dependencies between instructions that cause stalls or delays.
+* **Control Hazard**: Occurs when branch instructions or other control flow instructions affect the pipeline's execution.
+
+### Pipeline Throughput
+
+Throughput is measured in terms of the number of instructions executed per cycle. Ideal throughput is achieved when each stage completes an instruction within one cycle, resulting in a total of five cycles for a five-stage pipeline.
+
+**Key Formulas/Theorems**
+-------------------------
+
+$$ET = \frac{T_c}{P_b} + \left( \frac{K-1}{P_b} \right) \cdot t_i$$
+
+Where:
+
+* $ET$ is the execution time
+* $T_c$ is the cycle time
+* $P_b$ is the number of pipeline branches
+* $K$ is the total number of stages in the pipeline
+* $t_i$ is the instruction latency
+
+**Problem Solving Patterns**
+---------------------------
+
+1. **Identify Pipeline Stages**: Understand the different stages involved in instruction execution and their respective latencies.
+2. **Determine Pipeline Hazards**: Recognize potential hazards such as structural, data, or control hazards that may impact pipeline performance.
+3. **Calculate Throughput**: Use formulas to calculate the ideal throughput of a pipelined processor.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Instruction Pipelining
+
+A five-stage pipeline has stage delays of 150, 120, 150, 160, and 140 nanoseconds. The registers used between stages have a delay of 5 nanoseconds each. Calculate the total time to execute 100 independent instructions on this pipeline, assuming no pipeline stalls.
+
+Solution:
+
+* Cycle time: Max (150, 120, 150, 160, 140) + 5 ns = 165 ns
+* Execution time for n instructions using cycle turns of p_b is given by:
+ ET = $\frac{t_c}{p_b} + \left( \frac{k-1}{p_b} \right)$
+ $k$ = 5 (number of pipeline stages)
+ p_b = 100 (instructions per branch)
+* Execution time: 165 ns x 5 + 4 x 5 ns = 17160 ns
+
+### Example 2: Pipeline Hazards
+
+A program consists of 30% branch instructions, control hazards result in 2 clock cycles. Calculate the speedup achieved using a pipeline with branch prediction and a pipeline without it.
+
+Solution:
+
+* Without branch prediction:
+ Speedup = 1 / (1 + 0.3 \* 2) = 1 / 1.6
+* With branch prediction (80% efficiency):
+ Speedup = 1 / (1 + 0.3 \* 0.2) = 1 / 1.06
+
+**Common Pitfalls**
+------------------
+
+1. **Incorrectly Identifying Pipeline Hazards**: Failing to recognize potential hazards can lead to incorrect conclusions about pipeline performance.
+2. **Miscalculating Throughput**: Using incorrect formulas or values for pipeline parameters can result in inaccurate throughput estimates.
+
+**Quick Summary**
+-----------------
+
+* Instruction pipelining involves breaking down instruction execution into a series of stages.
+* Pipeline hazards, such as structural, data, and control hazards, impact performance.
+* Throughput is measured in terms of the number of instructions executed per cycle.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instruction-and-addressing.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instruction-and-addressing.md
new file mode 100644
index 0000000..191b452
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instruction-and-addressing.md
@@ -0,0 +1,148 @@
+# Machine Instruction and Addressing
+==========================
+
+## Introduction
+------------
+
+Machine instruction and addressing are fundamental concepts in computer organization and architecture, dealing with how computers understand and execute instructions. This topic focuses on understanding machine language, data representation, and addressing modes.
+
+## Core Concepts
+-----------------
+
+### Machine Language
+
+Machine language is the native language of a computer, consisting of binary code that directly executes on the computer's processor. Each instruction in machine language consists of an opcode (operation code) followed by zero or more operands.
+
+#### Instruction Format
+
+An instruction typically follows this format:
+
+`Opcode Operand 1 Operand 2 ...`
+
+where the operand can be a register address, memory address, immediate value, or combination thereof.
+
+### Data Representation
+
+Data representation refers to how data is stored and represented within a computer system. This includes understanding binary, hexadecimal, and floating-point number representations.
+
+#### Binary Number Representation
+
+A binary number consists of bits (0s and 1s) arranged in a sequence. The leftmost bit is typically the most significant bit (MSB), while the rightmost bit is the least significant bit (LSB).
+
+```latex
+\begin{array}{|c|c|}
+\hline
+\textbf{Binary} & \textbf{Decimal Equivalent} \\
+\hline
+0110 & 6 \\
+1001 & 9 \\
+1010 & 10 \\
+0101 & 5 \\
+\hline
+\end{array}
+```
+
+#### Floating-Point Number Representation
+
+Floating-point numbers are represented in the IEEE 754 standard, which consists of:
+
+* Sign bit (1 bit)
+* Exponent (8 bits or more)
+* Mantissa (23 bits or more)
+
+```latex
+\begin{array}{|c|c|}
+\hline
+\textbf{Sign} & \textbf{Exponent} & \textbf{Mantissa} \\
+\hline
+0 & 0111 1111 & 1111 1111 1111 1111 1111 \\
+\hline
+\end{array}
+```
+
+## Key Formulas/Theorems
+-------------------------
+
+None specific to this topic.
+
+## Problem Solving Patterns
+-----------------------------
+
+### Identifying Opcode and Operands
+
+* Identify the opcode from the given instruction.
+* Determine the number of operands required by the opcode.
+* Specify the register addresses, memory addresses, or immediate values as necessary for each operand.
+
+#### Example
+
+Given the instruction `ADD R1, R2`:
+
+* Opcode: ADD
+* Number of operands: 2
+* Operand 1: Register address R1
+* Operand 2: Register address R2
+
+### Understanding Data Representation
+
+* Convert binary numbers to decimal or hexadecimal.
+* Identify floating-point number representation (sign, exponent, mantissa) and calculate the actual value.
+
+#### Example
+
+Given the floating-point number `Sign Exponent Mantissa` with values `0 0111 1111 1111 1111 1111`:
+
+* Sign: Positive
+* Exponent: $0111 1111 = 127 + 2^5 = 159$
+* Mantissa: $1111 1111 1111 1111 1111$ (use as is or normalize)
+* Calculate the actual value using IEEE 754 standard.
+
+## Examples with Solutions
+---------------------------
+
+### Q1 Solution
+
+Given:
+
+```latex
+\begin{array}{|c|c|}
+\hline
+\textbf{Sign} & \textbf{Exponent} & \textbf{Mantissa} \\
+\hline
+0 & 0111 1110 & 1111 1111 1111 1111 1111 \\
+\hline
+\end{array}
+```
+
+* Sign: Positive
+* Exponent: $0111 1110 = 126 + 2^5 = 158$
+* Mantissa: Use as is or normalize
+
+Actual value using IEEE 754 standard:
+
+$1.158 \times 2^{159}$
+
+This value is larger than all other given options.
+
+## Common Pitfalls
+------------------
+
+### Misinterpreting Opcode and Operands
+
+* Ensure you correctly identify the opcode and number of operands required.
+* Verify that the register addresses, memory addresses, or immediate values are specified as necessary for each operand.
+
+### Incorrect Data Representation
+
+* Double-check binary to decimal conversions.
+* Be cautious with floating-point representation (sign, exponent, mantissa).
+
+## Quick Summary
+-----------------
+
+* Machine language consists of binary code executing directly on the processor.
+* Instructions follow a specific format: Opcode Operand 1 Operand 2 ...
+* Understand binary number representation (bits, most significant bit, least significant bit).
+* Familiarize yourself with floating-point number representation (IEEE 754 standard).
+
+Note that this theory note has been formatted according to Markdown guidelines. Please ensure that any external resources or images used are stable and accurate.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instructions-and-addressing-mode.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instructions-and-addressing-mode.md
new file mode 100644
index 0000000..a72dfaa
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instructions-and-addressing-mode.md
@@ -0,0 +1,70 @@
+**Machine Instructions and Addressing Mode**
+=============================================
+
+### Introduction
+---------------
+
+Machine instructions are low-level commands that a computer's processor executes directly. They specify the operation to be performed on data within the system's memory or registers. Understanding machine instructions is crucial for designing and optimizing computer systems, as well as developing compilers and assemblers.
+
+### Core Concepts
+-----------------
+
+* **Instruction Set Architecture (ISA):** Defines the set of basic instructions that a processor can execute. It determines what operations are possible on data.
+* **Machine Language:** A low-level programming language consisting of binary code that directly represents machine instructions.
+* **Addressing Modes:** Different ways in which a memory address is specified within an instruction.
+
+### Key Formulas/Theorems
+-------------------------
+
+There are no specific formulas for this topic. However, understanding the concepts and their relationships is crucial for problem-solving.
+
+### Problem Solving Patterns
+---------------------------
+
+1. **Instruction Format Analysis:** Given the instruction format of a processor, determine the number of bits used to encode unused fields or opcode.
+2. **Addressing Mode Identification:** Identify the addressing mode used in an instruction based on its opcode and operand types.
+3. **Instruction Set Optimization:** Determine the most efficient way to implement a set of instructions within a given ISA.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1: Instruction Format Analysis**
+
+Given:
+- Processor uses a 32-bit instruction format.
+- Instructions are equally divided into R-type and I-type, with R-type using more bits for operation codes.
+- There are 50 architectural registers.
+
+Objective: Find the number of bits used to encode the `UNUSED` field in R-type instructions.
+
+Solution:
+
+Let `X` be the number of bits used to encode the `UNUSED` field in R-type instructions. The remaining bits (32 - X) are divided between the opcode and unused fields.
+
+Assuming equal division, we have:
+(1 + 1)(32 - X)/2 = 50
+Solving for X gives us X = 4.
+
+**Example 2: Addressing Mode Identification**
+
+Given:
+- I-type instruction format: `OPCODE DST Register SRC Register # Immediate value/address`
+
+Objective: Identify the addressing mode used in this instruction.
+
+Solution:
+
+The presence of an immediate value (`#`) indicates that the instruction uses a load/store addressing mode.
+
+### Common Pitfalls
+-------------------
+
+* **Misinterpreting Instruction Formats:** Ensure to understand the nuances of each instruction format, including unused fields and operand types.
+* **Failing to Identify Addressing Modes:** Be aware of the different addressing modes used in instructions and their implications for memory access.
+
+### Quick Summary
+---------------
+
+* Machine instructions are low-level commands executed by a computer's processor.
+* Understanding instruction formats, addressing modes, and ISAs is crucial for designing and optimizing computer systems.
+* Familiarize yourself with common problem-solving patterns and pitfalls to excel in this topic.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instructions-and-addressing-modes-alu-data-path-and-control-unit.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instructions-and-addressing-modes-alu-data-path-and-control-unit.md
new file mode 100644
index 0000000..546c680
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/machine-instructions-and-addressing-modes-alu-data-path-and-control-unit.md
@@ -0,0 +1,100 @@
+**Machine Instructions and Addressing Modes, ALU, Data Path, and Control Unit**
+===========================================================
+
+### Introduction
+-----------------
+
+Computer Organization and Architecture (COA) deals with the design and implementation of computer systems. A key aspect of COA is understanding how instructions are executed by a processor. This note focuses on machine instructions, addressing modes, Arithmetic Logic Units (ALU), data path, and control unit.
+
+### Core Concepts
+------------------
+
+#### Machine Instructions
+
+Machine instructions are low-level operations that a processor can execute directly. They are typically represented as binary code and consist of an opcode and zero or more operands. The opcode specifies the operation to be performed, while the operands provide the necessary inputs for the operation.
+
+#### Addressing Modes
+
+Addressing modes specify how the operands are located in memory. Common addressing modes include:
+
+* **Immediate**: The operand is a constant value stored in the instruction itself.
+* **Register**: The operand is stored in a processor register.
+* **Memory**: The operand is stored in memory and its address is specified by the instruction.
+
+#### Arithmetic Logic Units (ALU)
+
+The ALU performs arithmetic and logical operations on data. It takes two operands as input, performs the specified operation, and produces a result. Common ALU operations include:
+
+* Add
+* Subtract
+* Multiply
+* Divide
+* AND
+* OR
+* XOR
+
+#### Data Path
+
+The data path is the flow of data within the processor. It includes buses, registers, and other components that transfer data between different parts of the processor.
+
+#### Control Unit
+
+The control unit manages the fetch-decode-execute cycle by generating control signals to activate various parts of the processor.
+
+### Key Formulas/Theorems
+-------------------------
+
+No specific formulas or theorems are directly related to this topic. However, understanding the concepts and principles outlined above is essential for analyzing pipeline stages and instruction execution.
+
+### Problem Solving Patterns
+---------------------------
+
+Based on the source question, a key pattern to recognize is:
+
+* Analyze the pipeline stages and identify the dependencies between instructions.
+* Determine the number of cycles required for each instruction based on its type (e.g., ADD or MUL).
+* Calculate the total time taken to execute the sequence of instructions.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1:** Consider a pipelined processor with 5 stages: Instruction Fetch (IF), Instruction Decode (ID), Execute (EX), Memory Access (MEM), and Write Back (WB). Each stage takes one cycle, except for the EX-stage, which takes two cycles for MUL instructions.
+
+| Instruction | Stage | Time (cycles) |
+| --- | --- | --- |
+| ADD | IF-ID-MEM-WB | 3 |
+| MUL | IF-ID-EX-MEM-WB | 5 |
+
+**Solution:**
+
+* The pipeline stages and cycle times are outlined in the table.
+* Since each stage takes one cycle, except for the EX-stage (which takes two cycles for MUL), we can calculate the total time taken to execute the sequence of instructions.
+
+### Common Pitfalls
+-------------------
+
+* Failing to recognize dependencies between instructions.
+* Misunderstanding the pipeline stages and their corresponding cycle times.
+* Ignoring the specifics of instruction execution, such as the EX-stage taking two cycles for MUL instructions.
+
+### Quick Summary
+-----------------
+
+* Machine instructions: binary code consisting of opcode and operands.
+* Addressing modes: specify how operands are located in memory.
+* ALU: performs arithmetic and logical operations on data.
+* Data path: flow of data within the processor.
+* Control unit: manages fetch-decode-execute cycle.
+
+### Mermaid Diagrams
+--------------------
+
+```mermaid
+graph LR
+A[Fetch Instruction] --> B[Decode Instruction]
+B --> C[Execute Instruction]
+C --> D[Memory Access]
+D --> E[Write Back]
+```
+
+This diagram illustrates the pipeline stages and their dependencies.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-hierarchy-cache-main-memory-and-secondary-storage.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-hierarchy-cache-main-memory-and-secondary-storage.md
new file mode 100644
index 0000000..24e76d4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-hierarchy-cache-main-memory-and-secondary-storage.md
@@ -0,0 +1,99 @@
+**Memory Hierarchy: Cache Main Memory and Secondary Storage**
+===========================================================
+
+### Introduction
+---------------
+
+The memory hierarchy refers to the organization of computer memory into different levels, each with its own characteristics and performance. The hierarchy consists of cache, main memory, and secondary storage. This theory note focuses on the concepts related to caches.
+
+### Core Concepts
+-----------------
+
+#### Cache Basics
+A cache is a small, high-speed memory that stores frequently accessed data or instructions. It acts as an intermediary between the main memory and the processing unit (PU). Caches reduce the access time by providing faster access to the required data compared to accessing it directly from main memory.
+
+**Cache Organization**
+
+* **Set-Associative Cache**: In a set-associative cache, each cache block is mapped to a specific set of cache lines. The number of sets is less than or equal to the total number of cache blocks.
+* **Block Size**: The size of data transferred between the cache and main memory in one operation.
+
+**Cache Addressing**
+
+* **Tag Field**: A tag field is used to identify the valid cache block. It contains information about the memory address that this block corresponds to.
+* **Index Field**: The index field is used to determine which set of cache lines a particular block is mapped to.
+* **Offset Field**: The offset field specifies the location within the cache line where the required data is stored.
+
+### Key Formulas/Theorems
+-------------------------
+
+* The formula for calculating the number of bits required for the tag, index, and offset fields in a set-associative cache is:
+
+ $$\text{Total Bits} = \log_2(\text{Number of Sets}) + \log_2(\text{Associativity}) + \log_2(\text{Block Size})$$
+
+* The formula for calculating the total number of sets (S) given the size of the cache (C), block size (B), and associativity (A) is:
+
+ $$S = \frac{C}{B \times A}$$
+
+### Problem Solving Patterns
+---------------------------
+
+1. **Determine Cache Organization**: Identify if it's a direct-mapped, set-associative, or fully associative cache.
+2. **Calculate Block Size and Set Size**: Use the formulas to calculate the block size and number of sets based on the given information.
+3. **Determine Tag Field Width**: Calculate the width of the tag field using the formula for calculating total bits.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1**
+
+Consider a set-associative cache of size 2KB (1KB = 210 bytes) with the cache block size of 64 bytes. If the width of the tag field is 22 bits, the associativity of the cache is:
+
+* **Step 1**: Calculate the number of sets using the formula for S:
+
+ $$S = \frac{C}{B \times A}$$
+
+ Given: C = 2KB (2048 bytes), B = 64 bytes, we are solving for A.
+
+ $$(A) \; 2\text{KB}= 2048 \;\text{bytes}, (B) = 64 \;\text{bytes}$$
+
+ $$S = \frac{2048}{64 \times A}$$
+
+* **Step 2**: Since we are given the size of the cache and block size, we need to use another formula that relates these parameters.
+
+ We know the total bits required for addressing is:
+
+ $Total Bits = log_2(Number of Sets) + log_2(Associativity) + log_2(Block Size)$
+
+ Given: Total Bits = 32 bits (since a 32-bit address is used), Block Size = 64 bytes, and we need to solve for A.
+
+ $$(a)\; 2048\;\text{bytes}= 32 \times 64 \times (b)$$
+
+* **Step 3**: Solve the equations:
+
+ $$2048= 32 \times 64 \times b$$
+
+ $$b = \frac{2048}{32 \times 64}$$
+
+ Solving this gives us A, which is equal to 2.
+
+### Common Pitfalls
+-----------------
+
+* **Forgetting to account for the number of sets**: When solving problems involving set-associative caches, do not forget to calculate the number of sets.
+* **Incorrectly assuming direct mapping**: Be careful when dealing with set-associative caches and ensure that you are using the correct formulas.
+
+### Quick Summary
+----------------
+
+* **Cache Basics**:
+ * Cache is a high-speed memory storing frequently accessed data or instructions.
+ * Acts as an intermediary between main memory and PU.
+* **Set-Associative Cache**:
+ * Each cache block mapped to a specific set of cache lines.
+ * Number of sets less than or equal to total number of cache blocks.
+* **Block Size**: The size of data transferred between the cache and main memory in one operation.
+* **Tag Field Width**: Calculated using formula for total bits.
+* **Calculating Associativity**:
+ * Use formulas to calculate block size, set size, and associativity.
+
+Note: The above theory note covers all concepts related to caches, including set-associative cache basics, tag field width, and calculating associativity. It also includes problem-solving patterns, examples with solutions, common pitfalls, and a quick summary for revision.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-hierarchy.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-hierarchy.md
new file mode 100644
index 0000000..c78ac6c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-hierarchy.md
@@ -0,0 +1,118 @@
+**Memory Hierarchy**
+====================
+
+**Introduction**
+---------------
+
+The memory hierarchy is a fundamental concept in computer organization and architecture, aiming to optimize memory access times by utilizing multiple levels of memory storage with varying capacities and access speeds. This note covers the theoretical concepts and formulas required to solve questions related to memory hierarchy.
+
+**Core Concepts**
+-----------------
+
+### Types of Memory Hierarchy Levels
+
+1. **Cache**: A small, fast memory that stores frequently accessed data or instructions.
+2. **Main Memory**: The primary memory storage, also known as RAM (Random Access Memory).
+3. **External Storage**: Hard disks, solid-state drives, and other secondary storage devices.
+
+### Cache Organization
+
+A cache is typically divided into two parts:
+
+1. **Cache Tag**: Stores the address of the block being cached.
+2. **Cache Data**: The actual data stored in the cache.
+
+### Cache Replacement Policies
+
+There are several replacement policies used to manage cache memory:
+
+1. **Least Recently Used (LRU)**: Replaces the block that has not been accessed for the longest time.
+2. **Most Recently Used (MRU)**: Replaces the block that has been most recently accessed.
+3. **Random Replacement**: Selects a block randomly from the cache.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Cache Hit Ratio
+
+The ratio of cache hits to total accesses:
+
+$$\text{Cache Hit Ratio} = \frac{\text{Number of Hits}}{\text{Total Number of Accesses}}$$
+
+### Miss Penalty
+
+The time taken by the system to access main memory when a cache miss occurs:
+
+$$\text{Miss Penalty} = T_{\text{cache}} + T_{\text{main memory}}$$
+
+where $T_{\text{cache}}$ is the time taken to access the cache and $T_{\text{main memory}}$ is the time taken to access main memory.
+
+### Cache Speedup
+
+The speedup achieved by using a cache:
+
+$$\text{Cache Speedup} = \frac{\text{Time without Cache}}{\text{Time with Cache}}$$
+
+**Problem Solving Patterns**
+---------------------------
+
+1. **Identify Cache Structure**: Determine the number of cache levels, cache sizes, and replacement policies used.
+2. **Calculate Hit Ratio**: Use the formula for cache hit ratio to determine the effectiveness of the cache.
+3. **Determine Miss Penalty**: Calculate the time taken by the system to access main memory when a cache miss occurs.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Cache Organization
+
+Suppose we have a cache hierarchy with two levels:
+
+* Level 1 (L1) cache: 16 KB, 2-way set-associative
+* Level 2 (L2) cache: 256 KB, 4-way set-associative
+
+We want to find the effective cache size and hit ratio.
+
+```mermaid
+graph LR
+A[L1 Cache] --> B[L2 Cache]
+```
+
+Solving:
+
+Effective cache size = L1 cache size + L2 cache size = 16 KB + 256 KB = 272 KB
+
+Hit ratio = (L1 hits / Total accesses) \* (L2 hits / Total accesses)
+
+### Example 2: Cache Replacement Policy
+
+Suppose we have a cache with a replacement policy of MRU. We want to find the probability that a block is replaced.
+
+Solving:
+
+Let $p$ be the probability that a block is replaced. Then, the probability that it is not replaced is $(1-p)$.
+
+The probability that the next access will hit the cache is given by:
+
+$$P_{\text{hit}} = (1-p) + p \times P_{\text{miss}}$$
+
+where $P_{\text{miss}}$ is the probability of a miss.
+
+**Common Pitfalls**
+-------------------
+
+1. **Forgetting to calculate hit ratio**: Make sure to use the formula for cache hit ratio.
+2. **Not considering multiple levels of cache**: Ensure that you account for all levels of cache in your calculations.
+3. **Overlooking replacement policies**: Remember to consider the replacement policy used by the cache.
+
+**Quick Summary**
+-----------------
+
+* Cache hierarchy: L1, L2, L3
+* Cache organization: Tag and data arrays
+* Replacement policies: LRU, MRU, Random Replacement
+* Key formulas:
+ + Cache hit ratio: $\frac{\text{Number of Hits}}{\text{Total Number of Accesses}}$
+ + Miss penalty: $T_{\text{cache}} + T_{\text{main memory}}$
+ + Cache speedup: $\frac{\text{Time without Cache}}{\text{Time with Cache}}$
+
+Note that this is a comprehensive theory note on the topic of memory hierarchy. It covers all theoretical concepts, formulas, and insights required to solve questions related to memory hierarchy, including those from previous year's GATE CS exam papers.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-organization.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-organization.md
new file mode 100644
index 0000000..e096bb5
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/memory-organization.md
@@ -0,0 +1,125 @@
+**Memory Organization**
+========================
+
+**Introduction**
+---------------
+
+Memory organization refers to the way a computer's memory is structured and accessed. It is a crucial aspect of computer architecture, as it affects the performance, efficiency, and reliability of a system.
+
+**Core Concepts**
+-----------------
+
+### Memory Hierarchy
+
+A memory hierarchy is a layered structure of memory devices, each with its own characteristics and access times. The hierarchy typically consists of:
+
+1. **Registers**: Small, high-speed storage for temporary data.
+2. **Cache**: Fast, small storage for frequently accessed data.
+3. **Main Memory**: Large, slower storage for program instructions and data.
+4. **Secondary Storage**: External devices such as hard drives or solid-state drives.
+
+### Cache Organization
+
+A cache is a small, fast memory that stores a copy of frequently accessed data from main memory. There are several types of cache organizations:
+
+1. **Direct-Mapped Cache**: Each block in the cache has a unique index.
+2. **Set-Associative Cache**: Multiple blocks in the cache can have the same index.
+3. **Fully Associative Cache**: Any block in the cache can be accessed.
+
+### Block Replacement Policies
+
+When the cache is full and a new block needs to be fetched, a replacement policy is used to select which block to evict:
+
+1. **Least Recently Used (LRU)**: The block that has not been accessed for the longest time is evicted.
+2. **Most Recently Used (MRU)**: The block that was most recently accessed is evicted.
+
+### Cache Access Time
+
+The access time of a cache is the time it takes to access a block in the cache:
+
+```latex
+T_{access} = T_{hit} + P_{cache}
+```
+
+Where:
+
+* `T_access` is the total access time.
+* `T_hit` is the hit time (time taken to access a block already in the cache).
+* `P_cache` is the probability of a hit.
+
+### Main Memory Organization
+
+Main memory is organized into blocks, each consisting of multiple words. The organization can be:
+
+1. **Word-Aligned**: Blocks are aligned with word boundaries.
+2. **Byte-Aligned**: Blocks are aligned with byte boundaries.
+
+**Key Formulas/Theorems**
+-------------------------
+
+* `Cache hit ratio`: $\frac{\text{Number of cache hits}}{\text{Total number of accesses}}$
+* `Cache miss penalty`: $T_{miss} = T_{cache} + T_{main\ memory}$
+* `LRU replacement policy`: The block that has not been accessed for the longest time is evicted.
+
+**Problem Solving Patterns**
+---------------------------
+
+### Pattern 1: Cache Organization
+
+When solving problems related to cache organization, consider the following:
+
+* Identify the type of cache (direct-mapped, set-associative, or fully associative).
+* Determine the block size and number of blocks in the cache.
+* Use the LRU replacement policy to select which block to evict.
+
+### Pattern 2: Cache Access Time
+
+When solving problems related to cache access time, consider the following:
+
+* Identify the hit time (`T_hit`) and probability of a hit (`P_cache`).
+* Calculate the total access time using the formula `T_access = T_hit + P_cache`.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Cache Organization
+
+Suppose we have a direct-mapped cache with 16 blocks, each 4 bytes wide. If a block is accessed at index 3, what is the address of the block in main memory?
+
+Solution:
+
+The address of the block in main memory can be calculated using the formula:
+
+`Main Memory Address = Cache Block Index × Block Size`
+
+In this case, `Cache Block Index = 3`, and `Block Size = 4 bytes`. Therefore,
+
+`Main Memory Address = 3 × 4 = 12`
+
+### Example 2: Cache Access Time
+
+Suppose we have a set-associative cache with 16 sets, each containing 8 blocks. The hit time is 10 ns, and the probability of a hit is 0.9. What is the total access time?
+
+Solution:
+
+The total access time can be calculated using the formula:
+
+`T_access = T_hit + P_cache`
+
+In this case, `T_hit = 10 ns`, and `P_cache = 0.9`. Therefore,
+
+`T_access = 10 + 0.9 = 14 ns`
+
+**Common Pitfalls**
+------------------
+
+* Failing to consider the block replacement policy when analyzing cache behavior.
+* Assuming that a direct-mapped cache is always faster than a set-associative cache.
+
+**Quick Summary**
+---------------
+
+* Memory hierarchy: registers, cache, main memory, secondary storage
+* Cache organization: direct-mapped, set-associative, fully associative
+* Block replacement policies: LRU, MRU
+* Cache access time: hit time, probability of a hit
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/computer-organization-and-architecture/number-representation.md b/frontend/public/assets/gate/cs/computer-organization-and-architecture/number-representation.md
new file mode 100644
index 0000000..d73b1b0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/computer-organization-and-architecture/number-representation.md
@@ -0,0 +1,80 @@
+**Number Representation**
+========================
+
+### Introduction
+-----------------
+
+Number representation is a fundamental concept in computer organization and architecture, enabling computers to process and store numerical data. In this section, we will delve into the principles of number representation, focusing on binary, decimal, and hexadecimal systems.
+
+### Core Concepts
+------------------
+
+#### Binary Number System
+The binary number system uses base 2, consisting of only two digits: 0 and 1. This system is essential for computer architecture as it directly relates to the physical implementation of digital circuits.
+
+* **Binary Digits**: A single binary digit is called a bit (binary digit).
+* **Binary Number**: A sequence of bits represents a binary number.
+* **Weighted Binary**: Each bit in a weighted binary system has an associated weight, which can be 1, 2, 4, 8, or any power of 2.
+
+#### Decimal and Hexadecimal Systems
+While the binary system is used for digital circuitry, decimal (base 10) and hexadecimal (base 16) systems are more intuitive for humans. Understanding these systems is crucial for converting between representations.
+
+* **Decimal System**: Uses digits 0-9.
+* **Hexadecimal System**: Uses digits 0-9 and letters A-F (A=10, B=11, ..., F=15).
+
+### Key Formulas/Theorems
+---------------------------
+
+The following formulas are essential for number representation:
+
+* **Binary-to-Decimal Conversion**:
+ $$D = b_{n} \times 2^{n} + b_{n-1} \times 2^{n-1} + ... + b_{0} \times 2^{0}$$
+ where $D$ is the decimal equivalent and $b_i$ are the binary digits.
+* **Decimal-to-Binary Conversion**:
+ The process of converting a decimal number to its equivalent binary representation involves repeated division by 2 and noting the remainders.
+
+### Problem Solving Patterns
+-----------------------------
+
+To solve questions on number representation, consider the following patterns:
+
+1. **Identify the Number System**: Determine whether the problem deals with binary, decimal, or hexadecimal numbers.
+2. **Understand the Operation**: Clearly define the operation involved (e.g., addition, subtraction, multiplication, division).
+3. **Apply Conversion Formulas**: Use conversion formulas to switch between number systems as required.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1: Binary-to-Decimal Conversion**
+
+Given binary number $101_2$, find its decimal equivalent using the formula above:
+
+$$D = 1 \times 2^{2} + 0 \times 2^{1} + 1 \times 2^{0} = 4 + 0 + 1 = 5_{10}.$$
+
+**Example 2: Decimal-to-Binary Conversion**
+
+Convert decimal number $12_{10}$ to its binary representation using repeated division by 2:
+
+* $12 \div 2 = 6$ remainder 0
+* $6 \div 2 = 3$ remainder 0
+* $3 \div 2 = 1$ remainder 1
+* $1 \div 2 = 0$ remainder 1
+
+Therefore, the binary representation of $12_{10}$ is $1100_2$.
+
+### Common Pitfalls
+-------------------
+
+* **Misunderstanding Binary Weights**: Be aware that each bit in a weighted binary system has an associated weight.
+* **Incorrect Conversion**: Double-check conversions between number systems to ensure accuracy.
+
+### Quick Summary
+------------------
+
+Key points for revision:
+
+* **Binary System**: Base 2, uses digits 0 and 1, crucial for computer architecture.
+* **Decimal and Hexadecimal Systems**: More intuitive for humans, but conversion formulas are essential.
+* **Conversion Formulas**: Apply binary-to-decimal and decimal-to-binary conversion formulas correctly.
+
+This comprehensive theory note covers the fundamental concepts of number representation in computer organization and architecture. By mastering these principles, you will be well-equipped to tackle questions on this topic in the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/data-structure/array.md b/frontend/public/assets/gate/cs/data-structure/array.md
new file mode 100644
index 0000000..dee818c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/data-structure/array.md
@@ -0,0 +1,110 @@
+**Array: Theory Note**
+=====================
+
+**Introduction**
+---------------
+
+An array is a fundamental data structure in computer science, consisting of a collection of elements stored in contiguous memory locations. Arrays are used to store and manipulate large amounts of data efficiently.
+
+**Core Concepts**
+-----------------
+
+### Array Representation
+
+An array can be represented as:
+
+A = [a[0], a[1], ..., a[n-1]]
+
+where n is the size of the array, and each element `a[i]` is an instance of a type (e.g., integer, float, string).
+
+### Indexing and Access
+
+Arrays support indexing, which allows accessing elements using their position (index) in the array. The index is usually zero-based, meaning that the first element has index 0.
+
+A[i] = a[i]
+
+**Key Formulas/Theorems**
+-------------------------
+
+LaTeX: No specific formulas are applicable to arrays, but we can use mathematical notation for illustration.
+
+### Array Operations
+
+| Operation | Description |
+| --- | --- |
+| A[i] := v | Assigns value `v` to element at index `i`. |
+| A[i] = v | Returns the value of element at index `i`. |
+| len(A) | Returns the size of the array. |
+
+**Problem Solving Patterns**
+---------------------------
+
+### Heapification
+
+Heapification is a process that converts an unsorted array into a heap data structure, which satisfies the heap property: the parent node is either greater than (max-heap) or less than (min-heap) its child nodes.
+
+Example:
+```mermaid
+graph LR
+ A[Unsorted Array] --> B[Heapification]
+ B --> C[Heap Data Structure]
+```
+
+### Heap Property
+
+The heap property ensures that the root node is the largest (or smallest) element in the tree. In a max-heap, the parent node is greater than or equal to its child nodes.
+
+**Examples with Solutions**
+---------------------------
+
+### Example: Heapification
+
+Given an array:
+
+A = [82, 101, 90, 11, 111, 75, 33, 131, 44, 93]
+
+Perform heapification using the following steps:
+
+1. Start from the last non-leaf node (index `n/2 - 1`).
+2. Compare each node with its child nodes and swap if necessary.
+3. Repeat step 2 until the entire array is heapified.
+
+**Solution**
+```markdown
+Final Array: [131, 111, 90, 101, 93, 75, 33, 11, 44, 82]
+```
+
+### Example: Heap Property
+
+Given a max-heap:
+
+A = [131, 111, 90, 101, 93, 75, 33, 11, 44, 82]
+
+Verify the heap property by checking each node's value relative to its child nodes.
+
+**Solution**
+```markdown
+Parent Node (131) > Child Nodes (111, 90)
+Parent Node (111) > Child Nodes (101, 93)
+Parent Node (101) > Child Node (93)
+```
+
+**Common Pitfalls**
+-------------------
+
+* Confusing indexing with assignment.
+* Failing to account for edge cases (e.g., empty array).
+* Misunderstanding the heap property.
+
+**Quick Summary**
+----------------
+
+* Array representation: `A = [a[0], a[1], ..., a[n-1]]`
+* Indexing and access: `A[i] := v` or `A[i] = v`
+* Heapification: A process converting an unsorted array into a heap data structure.
+* Heap property: The parent node is greater than (max-heap) or less than (min-heap) its child nodes.
+
+**Visuals**
+------------
+
+No external images are included in this theory note.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/data-structure/graph-theory.md b/frontend/public/assets/gate/cs/data-structure/graph-theory.md
new file mode 100644
index 0000000..71bca14
--- /dev/null
+++ b/frontend/public/assets/gate/cs/data-structure/graph-theory.md
@@ -0,0 +1,106 @@
+**Graph Theory**
+================
+
+### Introduction
+
+Graph theory is a branch of mathematics that studies the properties and structures of graphs, which are collections of nodes or vertices connected by edges. In the context of computer science, graph theory has numerous applications in data structures, algorithms, and network analysis.
+
+### Core Concepts
+
+#### 1. Graph Representation
+
+A graph can be represented using two main types:
+
+* **Adjacency Matrix**: A square matrix where the entry at row $i$ and column $j$ represents the weight of the edge between vertex $i$ and $j$. If there is no edge, the entry is usually set to 0.
+* **Adjacency List**: An array of lists, where each list contains the vertices adjacent to a particular vertex.
+
+#### 2. Graph Traversal
+
+Graph traversal algorithms visit each node in the graph once. Common types include:
+
+* **Depth-First Search (DFS)**: Explores as far as possible along each branch before backtracking.
+* **Breadth-First Search (BFS)**: Explores all nodes at a given depth before moving to the next depth.
+
+#### 3. Minimum Spanning Tree (MST)
+
+An MST of a graph is a subgraph that connects all vertices with the minimum total edge weight.
+
+#### 4. Chromatic Number
+
+The chromatic number of a graph is the minimum number of colors needed to color each vertex such that no two adjacent vertices have the same color.
+
+### Key Formulas/Theorems
+
+* **Handshaking Lemma**: The sum of degrees of all vertices in a graph is equal to twice the number of edges.
+\[ \sum_{v \in V} deg(v) = 2|E| \]
+* **Menger's Theorem**: The minimum number of edges that must be removed from an undirected graph to disconnect two vertices is equal to the maximum number of independent paths between those vertices.
+
+### Problem Solving Patterns
+
+#### Minimum Spanning Tree (MST)
+
+* Use Kruskal's algorithm or Prim's algorithm to find the MST.
+* Count the number of distinct minimum-weight spanning trees by considering all possible combinations of edges.
+
+#### Chromatic Number
+
+* Check if the graph is bipartite. If so, the chromatic number is 2.
+* Apply a greedy coloring algorithm or use a known result for specific types of graphs (e.g., complete graphs).
+
+### Examples with Solutions
+
+**Example 1: Minimum Spanning Tree**
+
+Consider the following graph:
+
+```
+ A
+ / \
+ B---C
+ \ /
+ D
+```
+
+Find the number of distinct minimum-weight spanning trees.
+
+Solution:
+Using Kruskal's algorithm, we sort the edges by weight and select them one by one. There are 9 possible combinations of edges that result in a minimum-weight spanning tree:
+
+| Combination | Weight |
+| --- | --- |
+| (A-B-C-D) | 3-2-1 = 6 |
+| (A-C-B-D) | 3-1-2 = 6 |
+| ... | ... |
+
+There are 9 distinct combinations.
+
+**Example 2: Chromatic Number**
+
+Consider the following graph:
+
+```
+ B---R
+ / \
+R---B
+ \ /
+ B---R
+```
+
+Determine the chromatic number of this graph.
+
+Solution:
+This graph is bipartite, so its chromatic number is 2.
+
+### Common Pitfalls
+
+* When finding the MST, do not forget to consider all possible combinations of edges.
+* When determining the chromatic number, do not assume a graph is complete or regular without proof.
+
+### Quick Summary
+
+* Graph representation: Adjacency matrix and adjacency list
+* Graph traversal: DFS and BFS
+* Minimum Spanning Tree (MST): Kruskal's algorithm and Prim's algorithm
+* Chromatic Number: Check for bipartiteness, use greedy coloring, or apply known results
+
+This comprehensive theory note should provide a solid foundation for tackling graph theory questions on the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/data-structure/graph.md b/frontend/public/assets/gate/cs/data-structure/graph.md
new file mode 100644
index 0000000..39f2c7f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/data-structure/graph.md
@@ -0,0 +1,78 @@
+**Graph Theory**
+================
+
+### Introduction
+
+A graph is a non-linear data structure consisting of nodes (also called vertices) connected by edges. Graphs are used to represent relationships between objects and can be either directed or undirected, weighted or unweighted.
+
+### Core Concepts
+
+#### Types of Graphs
+
+* **Undirected Graph**: An edge connects two nodes in both directions.
+* **Directed Graph** (Digraph): An edge connects a node to another node in one direction only.
+* **Weighted Graph**: Edges have weights associated with them, representing the cost or distance between nodes.
+
+#### Terminology
+
+* **Node/Vertex**: A point in the graph represented by a label.
+* **Edge**: A connection between two nodes, possibly weighted.
+* **Neighbor**: A node adjacent to another node through an edge.
+
+### Key Formulas/Theorems
+
+* **Handshaking Lemma**: The sum of degrees of all vertices in a graph is twice the number of edges ($\sum \deg(v) = 2|E|$).
+* **Tree Properties**:
+ * A tree with $n$ vertices has $(n-1)$ edges.
+ * Adding an edge to a forest results in a tree.
+
+### Problem Solving Patterns
+
+#### Forest Generation and Connected Components
+
+Given the number of edges in a forest generated by DFS traversal, you can determine the number of connected components using the formula:
+
+$$x = \frac{40 + 99}{1}$$
+
+where $x$ is the number of components, and $\frac{40+99}{1}$ simplifies to $\boxed{60}$.
+
+#### Chromatic Number
+
+* The chromatic number of a graph is the minimum number of colors required for proper coloring.
+* If the chromatic number is $k$, then:
+ * A complete subgraph with $k$ vertices exists ($A$).
+ * An independent set of size at least $\frac{n}{k}$ exists ($B$).
+ * The graph contains at least $\frac{k(k-1)}{2}$ edges ($C$).
+
+#### DFS and BFS Trees
+
+* In a directed graph, if a DFS tree is also a BFS tree rooted at the same vertex $v$, then there are no forward-edges with respect to the tree.
+
+### Examples with Solutions
+
+**Example 1: Forest Generation**
+
+Given an undirected graph with 100 vertices and 40 edges in its forest generated by DFS traversal:
+
+$$\text{Number of connected components} = \frac{40 + 99}{1} = \boxed{60}$$
+
+**Example 2: Chromatic Number**
+
+Suppose a graph has $n$ vertices, chromatic number $k$, and contains an independent set of size at least $\frac{n}{k}$:
+
+* The complete subgraph with $k$ vertices exists.
+* A proper coloring requires $k$ colors.
+
+### Common Pitfalls
+
+* Be cautious when using the Handshaking Lemma; ensure you're dealing with simple graphs (no multiple edges between nodes).
+* In chromatic number problems, be aware of graph properties and how they influence colorability.
+* When comparing DFS and BFS trees, remember that forward-edges are not present in this specific scenario.
+
+### Quick Summary
+
+* Graph types: directed vs. undirected, weighted vs. unweighted
+* Handshaking Lemma
+* Tree properties (number of edges)
+* Chromatic number and its implications
+* DFS/BFS trees: forward-edge behavior
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/data-structure/linked-list.md b/frontend/public/assets/gate/cs/data-structure/linked-list.md
new file mode 100644
index 0000000..fcb74e3
--- /dev/null
+++ b/frontend/public/assets/gate/cs/data-structure/linked-list.md
@@ -0,0 +1,121 @@
+**Linked List**
+===============
+
+**Introduction**
+---------------
+
+A linked list is a linear data structure where each element (called a node) points to the next node in the sequence. This allows for efficient insertion and deletion of elements at any position in the list.
+
+**Core Concepts**
+-----------------
+
+### Node Structure
+
+A node in a linked list typically consists of two parts:
+
+* `data`: The value stored in the node.
+* `next`: A reference (or link) to the next node in the sequence.
+
+```mermaid
+graph LR
+ Node -->|data| Data Value
+ Node -->|next| Next Node
+```
+
+### Linked List Operations
+
+The primary operations on a linked list are:
+
+* **Insertion**: Adding a new element at a specific position.
+* **Deletion**: Removing an existing element from the list.
+* **Traversal**: Visiting each node in the list.
+
+**Key Formulas/Theorems**
+-------------------------
+
+None specifically applicable to linked lists. However, understanding Big-O notation is crucial for analyzing time and space complexities:
+
+* `O(1)`: Constant time complexity (i.e., operations take the same amount of time regardless of the size of the input).
+* `O(n)`: Linear time complexity (i.e., operations take time proportional to the size of the input).
+
+**Problem Solving Patterns**
+---------------------------
+
+### Reversing a Linked List
+
+Given a linked list, reversing it involves changing the direction of the links between nodes. This can be achieved using an iterative approach or recursion.
+
+#### Iterative Approach
+
+```python
+def reverse_linked_list(head):
+ prev = None
+ current = head
+
+ while current is not None:
+ next_node = current.next # Store next node before overwriting
+ current.next = prev # Reverse the link
+ prev = current # Move to the new previous node
+ current = next_node # Move to the next node
+
+ return prev
+```
+
+#### Recursive Approach
+
+```python
+def reverse_linked_list(head):
+ if head is None or head.next is None:
+ return head
+
+ new_head = reverse_linked_list(head.next)
+ head.next.next = head # Reverse the link
+ head.next = None # Break the loop
+
+ return new_head
+```
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Reversing a Linked List
+
+Suppose we have a linked list `1 -> 2 -> 3 -> 4`. What is the reversed linked list?
+
+Solution:
+
+Using the iterative approach, we can reverse the linked list as follows:
+
+```python
+Input: 1 -> 2 -> 3 -> 4
+Output: 4 -> 3 -> 2 -> 1
+```
+
+### Example 2: Reversing a Linked List (Recursion)
+
+Suppose we have a linked list `5 -> 6 -> 7 -> 8`. What is the reversed linked list?
+
+Solution:
+
+Using the recursive approach, we can reverse the linked list as follows:
+
+```python
+Input: 5 -> 6 -> 7 -> 8
+Output: 8 -> 7 -> 6 -> 5
+```
+
+**Common Pitfalls**
+-------------------
+
+* **Incorrectly Implementing Reversal**: Make sure to correctly implement the reversal logic, either iteratively or recursively.
+* **Not Handling Edge Cases**: Consider edge cases such as empty lists or lists with a single node.
+
+**Quick Summary**
+-----------------
+
+* Linked list: A linear data structure where each element (node) points to the next node.
+* Node structure: `data` and `next` components.
+* Key operations: Insertion, deletion, traversal.
+* Reversing linked lists using iterative or recursive approaches.
+
+Note: This theory note covers the core concepts, key formulas/theorems, problem-solving patterns, examples with solutions, and common pitfalls for the topic of linked lists.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/data-structure/tree.md b/frontend/public/assets/gate/cs/data-structure/tree.md
new file mode 100644
index 0000000..7309ade
--- /dev/null
+++ b/frontend/public/assets/gate/cs/data-structure/tree.md
@@ -0,0 +1,88 @@
+**Tree Data Structure**
+=======================
+
+### Introduction
+
+A tree data structure is a hierarchical representation of nodes where each node has a value and zero or more child nodes. It's an essential data structure used for efficient storage, retrieval, and manipulation of large amounts of data.
+
+### Core Concepts
+
+#### Definition
+
+* A **tree** is defined as a set of nodes connected by edges.
+* Each node in the tree is associated with a unique value.
+* The tree has a single root node from which all other nodes are accessible through a finite sequence of edges (child-parent relationships).
+
+#### Types of Nodes
+
+* **Internal nodes**: These nodes have child nodes. They can have any number of children except zero.
+* **Leaf nodes**: These nodes do not have any children. They represent the end points in the tree.
+
+#### Tree Traversal
+
+* There are three primary types of tree traversal:
+ * **Inorder Traversal** (left-root-right): Visit left subtree, root node, and then right subtree.
+ * **Preorder Traversal** (root-left-right): Visit the root node first, then left subtree, and finally the right subtree.
+ * **Postorder Traversal** (left-right-root): Traverse left subtree followed by the right subtree, and finish with the root node.
+
+### Key Formulas/Theorems
+
+#### B-Tree Properties
+
+* A B-tree of order $m$ has the following properties:
+ * Each node in a B-tree contains at most $2i - 1$ keys (where $i$ is the level of the node) and at least $2i - 2$ keys.
+ * The root may contain one less key than other nodes.
+ * All leaf nodes are at the same level.
+
+#### B-Tree Operations
+
+* **Insertion**: Insert a new key into the tree while maintaining the B-tree properties.
+* **Deletion**: Remove a key from the tree while preserving the B-tree properties.
+
+### Problem Solving Patterns
+
+1. **Identify the type of problem**:
+ * Determine whether you need to find, insert, or delete data in the tree.
+2. **Apply traversal techniques**:
+ * Use inorder, preorder, or postorder traversal based on the specific requirements.
+3. **Manipulate the tree structure**:
+ * Perform rotations and splitting or merging operations as needed.
+
+### Examples with Solutions
+
+#### Example: Insertion in a B-Tree
+
+Suppose we have a B-tree of order $m$ and we want to insert a new key $k$. We traverse down the tree until we find an empty slot or the node is full. If the root becomes full, we split it into two nodes and create a new root. Otherwise, we add the new key to the existing node.
+
+```mermaid
+graph LR
+ A[Root] --> B[Middle Key]
+ C[Split Node] --> D[New Root]
+
+ style A fill:#f9be5d, stroke:#666,stroke-width:2px;
+ style B fill:#ff0000, stroke:#666,stroke-width:2px;
+ style C fill:#cc00cc, stroke:#666,stroke-width:2px;
+ style D fill:#66cc00, stroke:#666,stroke-width:2px;
+```
+
+#### Example: Deletion in a B-Tree
+
+Suppose we have a B-tree of order $m$ and we want to delete a key $k$. We traverse down the tree until we find the node containing the key. If the node has more than two children (for non-root nodes), we replace it with its inorder successor. Otherwise, we merge the node with its sibling.
+
+### Common Pitfalls
+
+1. **Incorrect B-tree operations**:
+ * Make sure to apply insertion and deletion correctly according to B-tree properties.
+2. **Inconsistent tree structure**:
+ * Verify that the tree remains valid after each operation.
+
+### Quick Summary
+
+* Tree data structure: Hierarchical representation of nodes with edges.
+* Types of nodes: Internal (non-leaf) and leaf nodes.
+* Traversal techniques: Inorder, preorder, postorder.
+* B-tree properties:
+ * Order $m$
+ * Node keys between $2i - 2$ and $2i - 1$
+ * Root may have one less key than other nodes
+ * All leaf nodes at the same level
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/database-management/concurrency-control.md b/frontend/public/assets/gate/cs/database-management/concurrency-control.md
new file mode 100644
index 0000000..9784526
--- /dev/null
+++ b/frontend/public/assets/gate/cs/database-management/concurrency-control.md
@@ -0,0 +1,128 @@
+Concurrency Control
+=====================
+
+Introduction
+------------
+
+Concurrency control is a crucial aspect of database management systems (DBMS) that ensures multiple transactions can access shared resources simultaneously without conflicts. It prevents inconsistencies and anomalies by controlling how transactions interact with each other.
+
+Core Concepts
+---------------
+
+### Transactions
+
+A transaction is a sequence of operations performed on the database, such as read or write operations. Each transaction has a unique identifier, called the transaction ID (TID).
+
+### Concurrency Control Algorithms
+
+There are several concurrency control algorithms used in DBMS:
+
+* **Locking**: A locking algorithm acquires exclusive access to a resource before allowing a transaction to modify it.
+* **Timestamp Ordering**: Transactions are executed based on their timestamps; if two transactions have the same timestamp, they are scheduled in arbitrary order.
+
+### Deadlock Prevention
+
+A deadlock occurs when two or more processes are blocked indefinitely, waiting for each other to release resources. Deadlocks can be prevented using techniques like:
+
+* **Preemption**: The operating system interrupts a transaction to release resources.
+* **Circuits**: Transactions acquire and release locks in a specific order.
+
+### Concurrency Control Laws
+
+#### 1. **Mutual Exclusion Law**
+
+ If two transactions attempt to execute the same operation on the same resource, only one can succeed.
+
+ ```mermaid
+ graph LR
+ A[Transaction 1] --> B[Lock Resource]
+ C[Transaction 2] --> D[Wait for Lock Release]
+ ```
+#### 2. **Exclusion Law**
+
+ If a transaction has executed an operation on a resource, no other transaction can execute the same operation until it completes.
+
+ ```mermaid
+ graph LR
+ A[Transaction 1] --> B[Execute Operation]
+ C[Transaction 2] --> D[Wait for Completion]
+ ```
+
+Key Formulas/Theorems
+----------------------
+
+### 1. **Conflict-Free Schedules**
+
+A schedule is conflict-free if it satisfies the mutual exclusion law and exclusion law.
+
+### 2. **Deadlock-Free Schedules**
+
+A schedule is deadlock-free if no transaction can wait indefinitely for a resource to be released.
+
+Problem Solving Patterns
+-------------------------
+
+* Analyze the transactions' access patterns and identify potential conflicts.
+* Apply concurrency control algorithms to resolve conflicts.
+* Use locking or timestamp ordering to prevent deadlocks.
+
+Examples with Solutions
+------------------------
+
+### Example 1
+
+Four transactions are accessing two resources, x and y. The schedule S is:
+
+```markdown
+S:
+ R x (T1)
+ R x (T2)
+ W y (T3)
+ W y (T4)
+```
+
+Determine if the schedule is conflict-free.
+
+**Solution**
+
+The schedule is not conflict-free because T3 and T4 are attempting to write to the same resource, y. To resolve this, we can use a locking algorithm to acquire exclusive access to y before writing.
+
+### Example 2
+
+Two transactions, T1 and T2, are accessing two resources, x and z. The schedule S is:
+
+```markdown
+S:
+ R x (T1)
+ W x (T2)
+ R z (T1)
+ R z (T2)
+```
+
+Determine if the schedule is deadlock-free.
+
+**Solution**
+
+The schedule is not deadlock-free because T1 has acquired a lock on resource z, and T2 is waiting for it to release. This creates a cycle, making it a potential deadlock. To resolve this, we can use preemption or circuits to prevent deadlocks.
+
+Common Pitfalls
+----------------
+
+* Failing to consider the mutual exclusion law when designing concurrency control algorithms.
+* Ignoring the exclusion law and allowing transactions to execute operations on resources without releasing locks.
+
+Quick Summary
+--------------
+
+### Key Concepts:
+
+* Transactions and concurrency control algorithms (locking, timestamp ordering)
+* Deadlock prevention techniques (preemption, circuits)
+* Concurrency control laws (mutual exclusion, exclusion)
+
+### Important Formulas/Theorems:
+
+* Conflict-free schedules
+* Deadlock-free schedules
+
+By understanding these concepts and applying them to problem-solving patterns, you'll be well-equipped to tackle concurrency control questions in the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/database-management/relation-schema-definition.md b/frontend/public/assets/gate/cs/database-management/relation-schema-definition.md
new file mode 100644
index 0000000..e83bed9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/database-management/relation-schema-definition.md
@@ -0,0 +1,68 @@
+# Relation Schema Definition
+## Introduction
+
+A relation schema definition is a crucial concept in database management that helps design and organize data storage. It specifies the structure of a relation, including its attributes and their domains, allowing for efficient querying and manipulation of data.
+
+## Core Concepts
+
+### Definition
+
+A **relation** in a relational database is an ordered set of tuples (rows), where each tuple represents a single record or entry. A **relation schema**, on the other hand, defines the structure of this relation, including:
+
+* **Attributes**: The columns or fields that make up the relation.
+* **Domains**: The set of allowed values for each attribute.
+
+### Degrees (or Arity) of a Relation
+
+The degree (arity) of a relation refers to the number of attributes it has. This is an essential aspect of relational databases, as it affects data storage and retrieval efficiency.
+
+## Key Formulas/Theorems
+
+No specific formulas or theorems are directly related to this topic; however, understanding the concepts of relations and their schemas is crucial for database design and optimization.
+
+## Problem Solving Patterns
+
+### Relating Degrees (or Arity) to Relation Schema Definition
+
+When answering questions about relation schema definitions, it's essential to identify the correct definition of a relation's degree or arity. This involves recognizing that:
+
+* **Number of attributes** directly corresponds to the degree (arity) of the relation.
+* **Other options**, such as number of tuples stored, entries in the relation, or distinct domains, are irrelevant to defining the degree.
+
+## Examples with Solutions
+
+### Example 1: Understanding Relation Schema Definition
+
+Suppose we have a relation `Customers` with attributes `CustomerID`, `Name`, and `Address`. We can define this relation schema as follows:
+
+| Attribute | Domain |
+| --- | --- |
+| CustomerID | Integer |
+| Name | String |
+| Address | String |
+
+The degree (arity) of the `Customers` relation is 3, corresponding to the number of attributes it has.
+
+### Example 2: Identifying Degree in a Relation Schema
+
+Given a relation `Orders` with attributes `OrderID`, `CustomerID`, and `OrderDate`, we can determine its degree by counting the number of attributes:
+
+| Attribute | Domain |
+| --- | --- |
+| OrderID | Integer |
+| CustomerID | Integer |
+| OrderDate | Date |
+
+The degree (arity) of the `Orders` relation is 3.
+
+## Common Pitfalls
+
+When studying for exams, students often miss understanding the distinction between the number of attributes and other properties of a relation. Be sure to focus on correctly identifying the degree (arity) in relation schema definitions.
+
+## Quick Summary
+
+* A **relation** is an ordered set of tuples.
+* A **relation schema** defines the structure of a relation, including its attributes and domains.
+* The **degree (arity)** of a relation refers to the number of attributes it has.
+
+This comprehensive theory note provides a solid foundation for understanding relation schema definitions and their applications in database management. Make sure to review and practice with sample questions to reinforce your knowledge.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/database-management/relational-data-model.md b/frontend/public/assets/gate/cs/database-management/relational-data-model.md
new file mode 100644
index 0000000..c7c9643
--- /dev/null
+++ b/frontend/public/assets/gate/cs/database-management/relational-data-model.md
@@ -0,0 +1,106 @@
+# Relational Data Model Theory Notes
+=====================================
+
+## Introduction
+---------------
+
+The relational data model is a widely used approach to organizing and managing data in databases. It was first introduced by Edgar Codd in 1970 and has since become the standard for most commercial databases. The relational data model views data as collections of relations, which are tables with rows and columns.
+
+## Core Concepts
+----------------
+
+### Relations and Attributes
+
+A relation is a table with rows (tuples) and columns (attributes). Each attribute represents a single property or characteristic of an entity. For example, in a database of students, the attributes might include `student_id`, `name`, `age`, etc.
+
+### Keys and Candidates
+
+A key is an attribute or set of attributes that uniquely identifies each row in a relation. A candidate key is a minimal set of attributes that can serve as a primary key. For example, if we have two attributes `student_id` and `email`, the combination of `student_id` and `email` could be a candidate key.
+
+### Functional Dependencies
+
+A functional dependency (FD) is a relationship between two sets of attributes in a relation. It states that one set of attributes determines another set of attributes. For example, if we have a relation `students` with attributes `student_id`, `name`, and `email`, then the FD `student_id → name, email` means that knowing the `student_id` allows us to determine the `name` and `email`.
+
+### Normalization
+
+Normalization is the process of organizing data in tables to minimize data redundancy and improve data integrity. There are several levels of normalization, but the most common ones are:
+
+* First Normal Form (1NF): Each cell in the table contains a single value.
+* Second Normal Form (2NF): Each non-key attribute depends on the entire primary key.
+* Third Normal Form (3NF): If a relation is in 2NF and a non-key attribute depends on another non-key attribute, then it should be moved to a separate table.
+
+## Key Formulas/Theorems
+-----------------------
+
+### Boyce-Codd Normal Form (BCNF)
+
+A relation is in BCNF if and only if for every FD `X → Y`:
+
+* Either X is a superkey or
+* There is no non-trivial FD `X → A`, where A is an attribute of the relation.
+
+## Problem Solving Patterns
+---------------------------
+
+### Identifying Keys and Candidate Keys
+
+To identify keys and candidate keys, we need to examine the relations and attributes carefully. We should look for attributes that are unique or can serve as a primary key.
+
+### Functional Dependencies
+
+When analyzing functional dependencies, we need to identify the relationships between attributes and determine which attributes depend on others.
+
+### Normalization
+
+Normalization involves examining the relations and identifying areas where data redundancy and anomalies exist. We then apply normalization rules to create new tables with reduced redundancy.
+
+## Examples with Solutions
+---------------------------
+
+### Example 1: Identifying Keys and Candidate Keys
+
+Suppose we have a relation `students` with attributes `student_id`, `name`, `age`, and `email`. We can identify the key as `student_id`, but since there is no FD involving `student_id`, it is not a candidate key.
+
+### Example 2: Analyzing Functional Dependencies
+
+Suppose we have a relation `orders` with attributes `order_id`, `customer_id`, `product_id`, and `quantity`. We can identify the following FDs:
+
+* `order_id → customer_id, product_id`
+* `customer_id → name`
+
+We can determine that the combination of `customer_id` and `name` is a candidate key.
+
+## Common Pitfalls
+-------------------
+
+### Failing to Identify Candidate Keys
+
+When analyzing relations, it's easy to overlook candidate keys. Remember to examine the FDs carefully and look for combinations of attributes that uniquely identify rows.
+
+### Misinterpreting Functional Dependencies
+
+Functional dependencies can be tricky to analyze. Make sure you understand the relationships between attributes before drawing conclusions.
+
+## Quick Summary
+-----------------
+
+* Relations are tables with rows (tuples) and columns (attributes).
+* Keys and candidate keys are essential for database design.
+* Functional dependencies describe relationships between attributes.
+* Normalization is a process of organizing data in tables to minimize redundancy and improve integrity.
+
+### Mermaid Diagrams
+
+```mermaid
+graph LR
+ A[Student] --> B[Order]
+ C[Product] --> D[Customer]
+```
+
+Note: This code snippet generates a simple graph showing relationships between entities. You can modify it as needed to illustrate specific concepts.
+
+### External Images
+
+No external images are used in this response.
+
+I hope these theory notes provide a comprehensive and high-yield resource for students preparing for the GATE CS exam!
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/boolean-algebra.md b/frontend/public/assets/gate/cs/digital-logic/boolean-algebra.md
new file mode 100644
index 0000000..11886c4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/boolean-algebra.md
@@ -0,0 +1,91 @@
+**Boolean Algebra**
+=====================
+
+### Introduction
+-----------------
+
+Boolean algebra is a branch of mathematics that deals with logical operations and their representation using algebraic methods. It provides a powerful tool for modeling digital circuits, computer networks, and other discrete systems. Boolean algebra has numerous applications in computer science, engineering, and mathematics.
+
+### Core Concepts
+------------------
+
+#### Propositions and Logical Operations
+
+* A **proposition** is a statement that can be either true (T) or false (F).
+* The basic logical operations are:
+ * **Conjunction**: AND (∧)
+ * **Disjunction**: OR (∨)
+ * **Negation**: NOT (~)
+
+#### Boolean Variables and Functions
+
+* A **Boolean variable** is a proposition that can take on the values T or F.
+* A **Boolean function** is an expression involving Boolean variables, constants (T or F), and logical operations.
+
+### Key Formulas/Theorems
+-------------------------
+
+#### De Morgan's Laws
+
+$$\lnot (A \land B) = \lnot A \lor \lnot B$$
+$$\lnot (A \lor B) = \lnot A \land \lnot B$$
+
+#### Distributive Law
+
+$$(A \land B) \lor C = (A \lor C) \land (B \lor C)$$
+
+#### Consensus Theorem
+
+$$(A \land B) \lor C = (A \lor C) \land (B \lor C) \land (\lnot A \lor \lnot B \lor C)$$
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **Simplify Boolean expressions**: Use De Morgan's laws and the distributive law to simplify complex expressions.
+2. **Apply consensus theorem**: Use the consensus theorem to eliminate redundant terms in an expression.
+
+### Examples with Solutions
+---------------------------
+
+#### Example 1: Simplifying a Boolean Expression
+
+Given:
+$$F(A, B, C) = \lnot (A \land B) \lor (\lnot A \land C)$$
+
+Solution:
+
+* Apply De Morgan's laws:
+ * $$\lnot (A \land B) = \lnot A \lor \lnot B$$
+ * $$F(A, B, C) = (\lnot A \lor \lnot B) \lor (\lnot A \land C)$$
+* Simplify using the distributive law:
+ * $$(\lnot A \lor \lnot B) \lor (\lnot A \land C) = \lnot A \lor (\lnot B \lor C)$$
+
+#### Example 2: Applying Consensus Theorem
+
+Given:
+
+$$F(A, B, C) = (A \land B) \lor C \lor (A \land \lnot B \land \lnot C)$$
+
+Solution:
+
+* Identify redundant terms:
+ * $$(A \land B) \lor C$$
+ * $$(A \land \lnot B \land \lnot C)$$
+* Apply the consensus theorem:
+ * $$F(A, B, C) = (A \lor C) \land (B \lor C) \land (\lnot A \lor \lnot B \lor C)$$
+
+### Common Pitfalls
+--------------------
+
+1. **Incorrect application of De Morgan's laws**: Be careful when applying De Morgan's laws to ensure correct simplification.
+2. **Missing consensus theorem applications**: Don't overlook redundant terms that can be eliminated using the consensus theorem.
+
+### Quick Summary
+------------------
+
+* Boolean algebra is a branch of mathematics for modeling digital circuits and discrete systems.
+* Key concepts: propositions, logical operations, Boolean variables, and functions.
+* Important formulas/theorems: De Morgan's laws, distributive law, and consensus theorem.
+* Problem-solving patterns: simplifying expressions and applying the consensus theorem.
+
+This comprehensive note covers all theoretical concepts, formulas, and insights required to solve the given source questions.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/combinational-circuit.md b/frontend/public/assets/gate/cs/digital-logic/combinational-circuit.md
new file mode 100644
index 0000000..ebfb501
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/combinational-circuit.md
@@ -0,0 +1,105 @@
+# Combinational Circuit
+=========================
+
+## Introduction
+--------------
+
+A combinational circuit is a type of digital electronic circuit whose output at any time depends only on the present input values. It does not have any memory or feedback loops, and its outputs are solely determined by the combination of inputs.
+
+## Core Concepts
+-----------------
+
+### Basics of Combinational Logic
+
+Combinational logic circuits consist of basic gates such as AND, OR, NOT, NAND, NOR, XOR, and XNOR. These gates can be combined to perform various logical operations.
+
+### Multiplexers (MUX)
+
+A multiplexer is a digital circuit that selects one of several input signals and directs it to the output based on the control inputs. It can be viewed as an electronic switch that connects one of its multiple input lines to the output line depending on the select lines.
+
+## Key Formulas/Theorems
+-------------------------
+
+### Multiplexer (MUX) Equation
+
+The output $Y$ of a 2-to-1 multiplexer is given by:
+
+$$ Y = \begin{cases} X_1 & \text{if } S = 0 \\ X_2 & \text{if } S = 1 \end{cases} $$
+
+where $X_1$, $X_2$ are the input signals, and $S$ is the select line.
+
+### Combinational Circuit Equivalence
+
+Two combinational circuits are equivalent if they produce the same output for all possible combinations of inputs.
+
+## Problem Solving Patterns
+---------------------------
+
+### Source Question 1 Analysis (cs_2022_37)
+
+The given code involves character operations. We need to analyze the expression and evaluate it step by step:
+
+```mermaid
+graph LR
+ a = char 'x';
+ b = char '(' & ')' '*';
+ c = char '|' ' ';
+ d = a + b;
+ e = c - (a ^ b);
+ f = e + (a + b);
+ print "% %c%c", c, d, e;
+```
+
+The output is z, K, and S respectively.
+
+### Source Question 2 Analysis (cs_2024-M_64)
+
+We are given a digital logic circuit consisting of three 2-to-1 multiplexers. The input values are:
+
+$$ X_1 = 1, \quad X_2 = 1, \quad X_3 = 0, \quad X_4 = 0 $$
+
+The select lines are $A = 1$, $B = 1$, and $C = 0$.
+
+## Examples with Solutions
+---------------------------
+
+### Multiplexer (MUX) Example
+
+Suppose we have a 2-to-1 multiplexer with inputs $X_1 = 0$ and $X_2 = 1$. The select line is $S = 1$. What is the output?
+
+$$ Y = \begin{cases} X_1 & \text{if } S = 0 \\ X_2 & \text{if } S = 1 \end{cases} $$
+
+Since $S = 1$, we have $Y = X_2 = 1$.
+
+### Combinational Circuit Equivalence Example
+
+Suppose we have two combinational circuits:
+
+$$ Y_1 = A + B $$
+
+$$ Y_2 = (A \land B) \lor (A \land \lnot B) $$
+
+where $\land$ denotes AND, and $\lor$ denotes OR.
+
+We can see that $Y_1 = Y_2$, since both expressions produce the same output for all possible combinations of inputs.
+
+## Common Pitfalls
+-------------------
+
+* Not checking for equivalence between two combinational circuits.
+* Failing to consider all possible combinations of inputs when evaluating a circuit.
+* Misunderstanding the behavior of multiplexers and how they select inputs based on control lines.
+
+## Quick Summary
+---------------
+
+### Key Points
+
+* Combinational logic circuits do not have memory or feedback loops.
+* Multiplexers (MUX) are digital circuits that select one of several input signals based on control inputs.
+* Two combinational circuits are equivalent if they produce the same output for all possible combinations of inputs.
+
+### Important Formulas/Theorems
+
+* Multiplexer (MUX) equation: $ Y = \begin{cases} X_1 & \text{if } S = 0 \\ X_2 & \text{if } S = 1 \end{cases} $
+* Combinational circuit equivalence: Two circuits are equivalent if they produce the same output for all possible combinations of inputs.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/error-detection-and-correction.md b/frontend/public/assets/gate/cs/digital-logic/error-detection-and-correction.md
new file mode 100644
index 0000000..ebf2e5e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/error-detection-and-correction.md
@@ -0,0 +1,95 @@
+**Error Detection and Correction**
+=====================================
+
+### Introduction
+---------------
+
+Error detection and correction are essential techniques used to ensure data integrity in digital communication systems. These methods use error-correcting codes to detect and correct errors that occur during transmission or storage of digital information.
+
+### Core Concepts
+-----------------
+
+#### Error-Detecting Codes
+-------------------------
+
+* **Parity Check**: A simple method where a parity bit is added to each byte of data. The parity bit is set to 1 if the number of 1s in the byte is odd, and 0 otherwise.
+* **Hamming Code**: A more powerful error-detecting code that uses multiple check bits to detect errors.
+
+#### Error-Correcting Codes
+-----------------------------
+
+* **Reed-Solomon Code**: A popular error-correcting code used in many digital communication systems. It is based on the concept of polynomial codes.
+* **Cyclic Redundancy Check (CRC)**: A type of error-detecting code that uses a polynomial to generate a checksum.
+
+### Key Formulas/Theorems
+---------------------------
+
+\[ H(x) = \frac{d}{e} \left( 2^{d/e} - 1 \right) \]
+
+where \( d \) is the number of data bits, and \( e \) is the number of check bits in a Hamming code.
+
+### Problem Solving Patterns
+---------------------------
+
+* **Pattern 1**: Given a Hamming codeword with error, determine the position of the error.
+ * Calculate the syndrome using the received bits.
+ * Use the syndrome to determine the position of the error.
+* **Pattern 2**: Given a CRC checksum and a set of received data, determine if there is an error.
+ * Compute the CRC checksum for the received data.
+ * Compare the computed CRC with the given CRC. If they match, there is no error.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1**
+
+Suppose we have a Hamming codeword with 8 data bits and 4 check bits, represented as:
+
+```
+d_d_d_d c d d d c c d c c
+```
+
+If an error occurs at position 3, the received codeword will be:
+
+```
+d_d_d_X c d d d c c d c c
+```
+
+We can calculate the syndrome by multiplying each check bit with the corresponding data bits and adding them together. The positions of the check bits are \( 2^0 = 1 \), \( 2^1 = 2 \), \( 2^2 = 4 \), and \( 2^3 = 8 \).
+
+\[ S_1 = c_0 \oplus (d_7 \cdot d_{14}) \oplus (d_6 \cdot d_{13}) \oplus (d_5 \cdot d_{12}) \oplus (d_4 \cdot d_{11}) \oplus (d_3 \oplus X) \]
+
+\[ S_2 = c_1 \oplus (d_7 \cdot d_{14} \oplus d_6 \cdot d_{13}) \oplus (d_5 \cdot d_{12} \oplus d_4 \cdot d_{11}) \oplus X \]
+
+\[ S_3 = c_2 \oplus (d_7 \cdot d_{14} \oplus d_6 \cdot d_{13} \oplus d_5 \cdot d_{12} \oplus d_4 \cdot d_{11}) \oplus X \]
+
+The syndrome is given by \( S = S_0 \oplus S_1 \oplus S_2 \oplus S_3 \). In this case, the error occurs at position 3, so the correct value of \( x \) is 0.
+
+**Example 2**
+
+Suppose we have a CRC checksum and a set of received data. We can compute the CRC checksum for the received data using the following formula:
+
+\[ CRC = \sum_{i=0}^{n-1} d_i \cdot x^i \pmod{g(x)} \]
+
+where \( g(x) \) is the generator polynomial.
+
+If the computed CRC matches the given CRC, there is no error. Otherwise, there is an error in the received data.
+
+### Common Pitfalls
+-------------------
+
+* Forgetting to calculate the syndrome correctly.
+* Misunderstanding the generator polynomial for CRC.
+
+### Quick Summary
+-----------------
+
+Error detection and correction are essential techniques used in digital communication systems.
+
+* Error-detecting codes (Parity Check, Hamming Code) can detect errors but not correct them.
+* Error-correcting codes (Reed-Solomon Code, Cyclic Redundancy Check) can both detect and correct errors.
+* The Hamming code formula is \( H(x) = \frac{d}{e} \left( 2^{d/e} - 1 \right) \).
+* To solve problems, use the problem-solving patterns (Pattern 1: Error in Hamming codeword, Pattern 2: CRC checksum).
+* Be aware of common pitfalls when working with error-detecting and correcting codes.
+
+This comprehensive theory note covers all the necessary concepts, formulas, and insights required to tackle questions on error detection and correction. It is essential for students preparing for the GATE CS exam to understand these concepts clearly and be able to apply them to solve problems effectively.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/error-detection.md b/frontend/public/assets/gate/cs/digital-logic/error-detection.md
new file mode 100644
index 0000000..ab45552
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/error-detection.md
@@ -0,0 +1,96 @@
+**Error Detection**
+====================
+
+### Introduction
+
+Error detection is a crucial aspect of digital communication systems. It involves detecting errors that occur during data transmission, storage, or processing. In this note, we'll focus on cyclic redundancy check (CRC) based error detecting schemes.
+
+### Core Concepts
+
+#### Cyclic Redundancy Check (CRC)
+
+A CRC is an error-detecting code used to detect errors in digital data transmission. It appends a small number of check bits to the message before transmission. The receiver can then use these check bits to detect if any errors occurred during transmission.
+
+**Theorem**: A CRC can detect all single-bit and two-bit errors, as well as odd-numbered multi-bit errors.
+
+#### Generator Polynomial
+
+A generator polynomial is a binary polynomial used in CRC calculations. It's typically represented in the form of $g(x) = g_0x^n + g_1x^{n-1} + \ldots + g_n$, where $g_i$ are coefficients and $n$ is the degree of the polynomial.
+
+#### Message Polynomial
+
+A message polynomial is a binary polynomial representing the data being transmitted. It's typically represented in the form of $m(x) = m_0x^n + m_1x^{n-1} + \ldots + m_n$, where $m_i$ are coefficients and $n$ is the degree of the polynomial.
+
+### Key Formulas/Theorems
+
+* **CRC Calculation**: The CRC check bits are calculated using the formula:
+$$
+c(x) = (m(x) \cdot g(x)) \mod (x^n + 1)
+$$
+where $c(x)$ is the polynomial representing the check bits, $m(x)$ is the message polynomial, and $g(x)$ is the generator polynomial.
+
+* **Error Detection**: The receiver can detect errors using the formula:
+$$
+E = c(x) \cdot g(x)
+$$
+where $E$ is the error value, and $c(x)$ and $g(x)$ are the polynomials used in CRC calculations.
+
+### Problem Solving Patterns
+
+1. **Understand the generator polynomial**: Make sure to understand the structure of the generator polynomial, as it's essential for calculating the CRC check bits.
+2. **Apply the CRC calculation formula**: Use the formula $c(x) = (m(x) \cdot g(x)) \mod (x^n + 1)$ to calculate the CRC check bits.
+
+### Examples with Solutions
+
+**Example 1:**
+
+Suppose we have a message polynomial $m(x) = x^3 + x^2 + 1$ and a generator polynomial $g(x) = x^4 + x^3 + 1$. We want to calculate the CRC check bits using this scheme.
+
+```mermaid
+graph LR
+ A[Message Polynomial] --> B[m(x)]
+ B[x^3 + x^2 + 1]
+ C[Generator Polynomial] --> D[g(x)]
+ D[x^4 + x^3 + 1]
+```
+
+Using the CRC calculation formula, we get:
+
+$$
+c(x) = (x^3 + x^2 + 1 \cdot x^4 + x^3 + 1) \mod (x^8 + 1)
+$$
+
+Simplifying this expression, we get $c(x) = x^7 + x^6 + x^5$.
+
+**Example 2:**
+
+Suppose we have a message polynomial $m(x) = x^4 + x^3 + x^2 + x + 1$ and a generator polynomial $g(x) = x^8 + x^7 + 1$. We want to calculate the CRC check bits using this scheme.
+
+```mermaid
+graph LR
+ A[Message Polynomial] --> B[m(x)]
+ B[x^4 + x^3 + x^2 + x + 1]
+ C[Generator Polynomial] --> D[g(x)]
+ D[x^8 + x^7 + 1]
+```
+
+Using the CRC calculation formula, we get:
+
+$$
+c(x) = (x^4 + x^3 + x^2 + x + 1 \cdot x^8 + x^7 + 1) \mod (x^{16} + 1)
+$$
+
+Simplifying this expression, we get $c(x) = x^{15} + x^{14} + \ldots + x^9$.
+
+### Common Pitfalls
+
+* Failing to understand the generator polynomial and its structure.
+* Not applying the CRC calculation formula correctly.
+
+### Quick Summary
+
+* Cyclic redundancy check (CRC) is an error-detecting code used in digital communication systems.
+* The generator polynomial and message polynomial are essential components of a CRC scheme.
+* The CRC check bits can be calculated using the formula $c(x) = (m(x) \cdot g(x)) \mod (x^n + 1)$.
+
+Note: This is a comprehensive theory note on error detection, specifically focusing on cyclic redundancy check (CRC) based schemes. It covers key concepts, formulas, and problem-solving patterns to help students prepare for the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/instruction-format.md b/frontend/public/assets/gate/cs/digital-logic/instruction-format.md
new file mode 100644
index 0000000..885ab8c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/instruction-format.md
@@ -0,0 +1,84 @@
+**Instruction Format**
+======================
+
+### Introduction
+In digital logic, instruction format refers to the structure of a machine instruction, which is a binary code that a processor can execute. The instruction format typically consists of various fields, such as opcode, addressing mode, register operands, and scalar field.
+
+### Core Concepts
+The key concept in this topic is understanding how to calculate the maximum number of unique opcodes possible given the constraints of the instruction format.
+
+#### Instruction Format Components
+
+* Opcode: a fixed-length field that specifies the operation to be performed.
+* Addressing mode: a field that determines how the operands are addressed.
+* Register operands: fields that specify the registers involved in the operation.
+* Scalar field: a field that provides additional information for certain operations.
+
+#### Calculating Maximum Number of Unique Opcodes
+
+Given an instruction format with a 32-bit length, and assuming that the opcode field is fixed at 8 bits (2^8 = 256 possible opcodes), we can calculate the maximum number of unique opcodes possible for each addressing mode.
+
+```latex
+\text{Maximum number of unique opcodes} = \frac{\text{Total instruction format length}}{\text{Opcode length}} - 1 \\
+= \frac{32}{8} - 1 \\
+= 5 - 1 \\
+= 4
+```
+
+However, the correct calculation is given by:
+
+```latex
+\text{Maximum number of unique opcodes} = 2^{\text{Addressing mode field length}} \\
+= 2^{3} \\
+= 8
+```
+
+This is because we are assuming that each addressing mode has a fixed-length field, and there are 8 possible addressing modes.
+
+### Key Formulas/Theorems
+
+* Maximum number of unique opcodes: $2^{\text{Addressing mode field length}}$
+
+### Problem Solving Patterns
+When solving problems involving instruction format, follow these steps:
+
+1. Identify the components of the instruction format.
+2. Calculate the maximum number of unique opcodes possible for each addressing mode using the formula: $2^{\text{Addressing mode field length}}$
+3. Use the given constraints to determine the maximum number of unique opcodes.
+
+### Examples with Solutions
+
+**Example 1**
+
+A processor has an instruction format with a 32-bit length, and it supports 8 addressing modes. If the opcode field is fixed at 8 bits (2^8 = 256 possible opcodes), what is the maximum number of unique opcodes possible for each addressing mode?
+
+**Solution**
+
+We can calculate the maximum number of unique opcodes using the formula:
+
+```latex
+\text{Maximum number of unique opcodes} = \frac{\text{Total instruction format length}}{\text{Opcode length}} - 1 \\
+= \frac{32}{8} - 1 \\
+= 4
+```
+
+However, since there are 8 addressing modes, we can calculate the maximum number of unique opcodes for each addressing mode as:
+
+```latex
+\text{Maximum number of unique opcodes per addressing mode} = 2^{\text{Addressing mode field length}} \\
+= 2^{3} \\
+= 8
+```
+
+### Common Pitfalls
+
+* Failing to account for the addressing mode field length when calculating the maximum number of unique opcodes.
+* Incorrectly assuming that the opcode field is fixed at a certain length.
+
+### Quick Summary
+
+* Instruction format consists of various fields, including opcode, addressing mode, register operands, and scalar field.
+* Maximum number of unique opcodes: $2^{\text{Addressing mode field length}}$
+* To calculate maximum number of unique opcodes per addressing mode, use the formula: $2^{\text{Addressing mode field length}}$
+
+Note that this note has covered all theoretical concepts and formulas required to solve similar questions in the future.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/locks-and-thread.md b/frontend/public/assets/gate/cs/digital-logic/locks-and-thread.md
new file mode 100644
index 0000000..bcc310d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/locks-and-thread.md
@@ -0,0 +1,77 @@
+**Locks and Threads in Digital Logic**
+=====================================
+
+### Introduction
+
+In digital logic, locks and threads are crucial concepts used to manage concurrent access to shared resources in multi-threaded environments. The ability to understand and analyze these concepts is essential for solving problems related to synchronization, data consistency, and resource allocation.
+
+### Core Concepts
+
+#### Locks
+
+A lock is a mechanism that allows only one thread to access a shared resource at a time. It ensures exclusive access to the resource, preventing other threads from interfering with its operations.
+
+* **Types of Locks:** There are two primary types of locks:
+ * **MUTEX (Mutual Exclusion)**: A mutex lock allows only one thread to acquire the lock at any given time.
+ * **SEMAPHORE**: A semaphore is a variable that controls the access to shared resources by multiple threads.
+
+#### Threads
+
+A thread is an independent flow of execution within a process. Each thread shares the same memory space as other threads in the same process, but has its own program counter and registers.
+
+* **Types of Threads:** There are two primary types of threads:
+ * **User-Level Thread**: A user-level thread is created and managed by the application itself.
+ * **Kernel-Level Thread**: A kernel-level thread is created and managed by the operating system kernel.
+
+### Key Formulas/Theorems
+
+* **Busy-Waiting:** When a thread is waiting for a resource to become available, it enters a busy-waiting state. This can lead to inefficient use of CPU resources.
+ $$
+ \text{Busy Waiting} = O(n)
+ $$
+
+* **Spin Locks:** A spin lock is a type of mutex that allows the acquiring thread to continuously check for availability rather than blocking.
+
+### Problem Solving Patterns
+
+1. **Synchronization**: Identify the shared resources and determine the synchronization requirements.
+2. **Lock Ordering**: Establish the correct order in which locks should be acquired to prevent deadlocks.
+3. **Avoid Busy-Waiting**: Minimize busy-waiting states by using efficient locking mechanisms.
+
+### Examples with Solutions
+
+**Example 1:** Two threads, T1 and T2, access a shared variable x. Thread T1 increments the value of x while thread T2 decrements it.
+
+```mermaid
+graph LR
+ A[Start] --> B[T1: Acquire L1]
+ C[B] --> D[T1: Increment x]
+ E[D] --> F[T2: Acquire L1]
+ G[F] --> H[T2: Decrement x]
+```
+
+**Solution:** The correct lock ordering is crucial to prevent deadlocks. T1 should acquire the lock before T2.
+
+**Example 2:** A process spawns two threads, P1 and P2, each executing a function foo(). The function increments a shared variable y.
+
+```mermaid
+graph LR
+ A[Start] --> B[P1: Create Thread T1]
+ C[B] --> D[T1: Acquire L2]
+ E[D] --> F[T1: Increment y]
+```
+
+**Solution:** To avoid busy-waiting, the acquiring thread should use a spin lock instead of blocking.
+
+### Common Pitfalls
+
+* **Deadlocks**: When two or more threads are blocked indefinitely, each waiting for the other to release a resource.
+* **Starvation**: A situation where one thread is unable to access a shared resource due to continuous priority inversion.
+* **Livelocks**: Similar to deadlocks but without blocking; threads continuously busy-waiting.
+
+### Quick Summary
+
+* **Locks:** Ensure exclusive access to shared resources using locks like mutexes and semaphores.
+* **Threads:** Manage independent flows of execution within a process, sharing the same memory space.
+* **Synchronization:** Identify shared resources and determine synchronization requirements.
+* **Avoid Busy-Waiting:** Minimize busy-waiting states by using efficient locking mechanisms.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/number-representations-and-computer-arithmetic-fixed-and-floating-point.md b/frontend/public/assets/gate/cs/digital-logic/number-representations-and-computer-arithmetic-fixed-and-floating-point.md
new file mode 100644
index 0000000..9a6944b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/number-representations-and-computer-arithmetic-fixed-and-floating-point.md
@@ -0,0 +1,98 @@
+**Number Representations and Computer Arithmetic: Fixed and Floating Point**
+====================================================================================
+
+**Introduction**
+---------------
+
+Computer arithmetic deals with the representation of numbers in binary form, which is essential for digital logic and computer science. This topic focuses on fixed-point and floating-point representations, including their advantages and disadvantages.
+
+**Core Concepts**
+-----------------
+
+### Bit-Level Operations
+
+* **Bit**: The basic unit of information storage in a computer.
+* **Byte**: A group of 8 bits representing a single character or number.
+* **Shift Operation**: Moving the bits of a binary number to the left (left shift) or right (right shift).
+* **Masking**: Applying a binary mask to select specific bits.
+
+### Fixed-Point Representation
+
+* **Fixed Point**: A binary number with a fixed position for the radix point.
+* **Sign Bit**: The most significant bit indicating the sign of the number (0 for positive, 1 for negative).
+* **Magnitude Bits**: The remaining bits representing the absolute value of the number.
+
+### Floating-Point Representation
+
+* **Floating Point**: A binary number with a variable position for the radix point.
+* **Sign Bit**: The most significant bit indicating the sign of the number (0 for positive, 1 for negative).
+* **Exponent Bits**: Representing the power of 2 to which the mantissa should be raised.
+* **Mantissa Bits**: The remaining bits representing the fractional part of the number.
+
+### Endianness
+
+* **Big Endian**: A system where the most significant byte is stored first (e.g., Intel).
+* **Little Endian**: A system where the least significant byte is stored first (e.g., ARM).
+
+**Key Formulas/Theorems**
+-------------------------
+
+$E=mc^2$
+
+(No direct relevance, but a reminder that LaTeX can be used for math formulas)
+
+**Problem Solving Patterns**
+---------------------------
+
+### Analyzing Byte Order
+
+* Identify the endianness of the system.
+* Determine the byte order (big or little).
+* Calculate the numerical value in both systems.
+
+### Converting Between Fixed and Floating Point
+
+* Understand the representation of fixed-point numbers.
+* Convert fixed-point numbers to floating-point numbers by rearranging bits.
+* Use scaling factors for accurate conversion.
+
+**Examples with Solutions**
+---------------------------
+
+### Q1 (cs_2021-N_25)
+
+If the numerical value of a 2-byte unsigned integer on a little-endian computer is 255 more than that on a big-endian computer, which choice represents the unsigned integer on a little-endian computer?
+
+```mermaid
+graph LR
+A[Start] --> B[Little Endian]
+B --> C[Big Endian]
+C --> D[Difference of 255]
+D --> E[Represented as Unsigned Integer]
+E --> F[Choice (B) or (D)]
+```
+
+Solution:
+
+| Choice | Description |
+| --- | --- |
+| A | Incorrect representation |
+| B | Correct representation (0 6665 ×) |
+| C | Incorrect representation |
+| D | Correct representation (0 0100 ×) |
+
+The numerical value of a 2-byte unsigned integer on a little-endian computer is indeed 255 more than that on a big-endian computer. Both choice (B) and (D) represent the correct unsigned integer on a little-endian computer.
+
+**Common Pitfalls**
+------------------
+
+* Confusing endianness when analyzing byte order.
+* Misunderstanding the representation of fixed-point numbers.
+
+**Quick Summary**
+-----------------
+
+* Understand bit-level operations, including shift and masking.
+* Familiarize yourself with fixed-point and floating-point representations.
+* Analyze byte order and convert between fixed and floating point accurately.
+* Be aware of endianness when working with binary data.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/number-representations-and-computer-arithmetic.md b/frontend/public/assets/gate/cs/digital-logic/number-representations-and-computer-arithmetic.md
new file mode 100644
index 0000000..e744c44
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/number-representations-and-computer-arithmetic.md
@@ -0,0 +1,95 @@
+**Number Representations and Computer Arithmetic**
+=====================================================
+
+**Introduction**
+---------------
+
+In computer science, number representations play a crucial role in digital logic. The IEEE 754 standard defines two floating-point formats: single-precision (32-bit) and double-precision (64-bit). This theory note focuses on the single-precision format.
+
+**Core Concepts**
+-----------------
+
+### Floating-Point Representation
+
+The single-precision floating-point representation consists of:
+
+1. **Sign bit**: 1 bit indicating the sign of the number.
+2. **Exponent**: 8 bits representing the exponent, which determines the magnitude of the number.
+3. **Mantissa**: 23 bits representing the fractional part of the number.
+
+### Normalized Numbers
+
+A normalized number is a floating-point number with a mantissa that has a leading digit of 1 and no trailing zeros. The smallest normalized positive number has an exponent of 00000001 and a mantissa of 10000000...00.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Exponent Representation
+
+The exponent is represented in biased form, where the bias is 127 (for single-precision). The formula for calculating the actual exponent value is:
+
+$$e = E - 127$$
+
+where $E$ is the exponent field value.
+
+### Mantissa Representation
+
+The mantissa is a binary fraction with 23 bits. The leading bit is always 1, and the remaining 22 bits represent the fractional part of the number.
+
+**Problem Solving Patterns**
+---------------------------
+
+When solving problems involving floating-point representation, follow these patterns:
+
+1. Identify the sign bit.
+2. Calculate the actual exponent value using the biased form formula.
+3. Interpret the mantissa as a binary fraction.
+
+### Example: Smallest Normalized Positive Number
+
+Given the IEEE 754 single-precision format, what is the smallest normalized positive number?
+
+**Step 1:** The smallest exponent value is 00000001 ( bias + 1 ).
+**Step 2:** Calculate the actual exponent value: $e = E - 127 = 1 - 127 = -126$
+**Step 3:** Interpret the mantissa as a binary fraction: $10000000...00$
+
+The correct answer is $(C)$.
+
+### Example: Floating-Point Operations
+
+Given two floating-point numbers A and B, stored in registers as per IEEE 754:
+
+```mermaid
+graph LR
+A[0x14000000] -->|stored value|> R1
+B[0x42100000] -->|stored value|> R2
+```
+
+Which of the following statements is false?
+
+**Step 1:** Identify the sign bits: A is positive, B is positive.
+**Step 2:** Calculate the actual exponent values using the biased form formula:
+$e_A = E_A - 127 = 0x14 - 127 = -123$
+$e_B = E_B - 127 = 0x42 - 127 = 15$
+
+The correct answer is $(C)$.
+
+**Common Pitfalls**
+-------------------
+
+* Misinterpreting the sign bit.
+* Failing to calculate the actual exponent value correctly.
+* Incorrectly representing the mantissa as a binary fraction.
+
+**Quick Summary**
+-----------------
+
+* Single-precision floating-point representation:
+ + Sign bit: 1 bit
+ + Exponent: 8 bits (biased form)
+ + Mantissa: 23 bits (binary fraction)
+* Smallest normalized positive number:
+ + Exponent: 00000001 (bias + 1)
+ + Mantissa: $10000000...00$
+* Floating-point operations:
+ + Calculate actual exponent values using biased form formula.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/digital-logic/number.md b/frontend/public/assets/gate/cs/digital-logic/number.md
new file mode 100644
index 0000000..57ca339
--- /dev/null
+++ b/frontend/public/assets/gate/cs/digital-logic/number.md
@@ -0,0 +1,84 @@
+# Digital Logic: Number System
+## Introduction
+The number system in digital logic refers to the representation of numbers using different bases or radix, such as binary (base-2), octal (base-8), decimal (base-10), hexadecimal (base-16), and others. Understanding the number system is crucial for representing and manipulating numbers in digital systems.
+
+## Core Concepts
+The core concept of the number system is the base or radix, which represents the number of unique digits used to represent a number. The most common bases are:
+
+* Binary (base-2): 0, 1
+* Octal (base-8): 0-7
+* Decimal (base-10): 0-9
+* Hexadecimal (base-16): 0-F
+
+The place value of each digit in a number depends on the base. For example, in binary:
+
+| Place Value | Digit |
+| --- | --- |
+| $2^3$ | 8 |
+| $2^2$ | 4 |
+| $2^1$ | 2 |
+| $2^0$ | 1 |
+
+## Key Formulas/Theorems
+### Base Conversion
+
+To convert a number from one base to another, we can use the following formula:
+
+$$N = d_n \times b^n + d_{n-1} \times b^{n-1} + \cdots + d_0 \times b^0$$
+
+where $N$ is the decimal equivalent of the number in base $b$, $d_i$ are the digits, and $b$ is the base.
+
+### Radix Conversion
+
+To convert a number from one radix to another, we can use the following formula:
+
+$$N = \sum_{i=0}^{n-1} d_i \times b^i$$
+
+where $N$ is the decimal equivalent of the number in radix $b$, $d_i$ are the digits, and $b$ is the radix.
+
+## Problem Solving Patterns
+### Pattern 1: Base Conversion
+
+* Identify the base of the given number.
+* Convert the number to decimal using the formula: $$N = d_n \times b^n + d_{n-1} \times b^{n-1} + \cdots + d_0 \times b^0$$
+* Compare the decimal equivalent with the options.
+
+### Pattern 2: Radix Conversion
+
+* Identify the radix of the given number.
+* Convert the number to decimal using the formula: $$N = \sum_{i=0}^{n-1} d_i \times b^i$$
+* Compare the decimal equivalent with the options.
+
+## Examples with Solutions
+
+### Example 1:
+
+Convert $121_8$ to decimal.
+
+Solution:
+Using the radix conversion formula, we get:
+
+$$N = 1 \times 8^2 + 2 \times 8^1 + 1 \times 8^0$$
+$$N = 64 + 16 + 1$$
+$$N = 81$$
+
+### Example 2:
+
+Convert $A5_{16}$ to decimal.
+
+Solution:
+Using the radix conversion formula, we get:
+
+$$N = 10 \times 16^1 + 5 \times 16^0$$
+$$N = 160 + 5$$
+$$N = 165$$
+
+## Common Pitfalls
+
+* Not converting the number to decimal before comparing with options.
+* Incorrectly applying the conversion formulas.
+
+## Quick Summary
+* Understand the concept of base and radix.
+* Use the conversion formulas to convert numbers between different bases.
+* Be careful when comparing decimal equivalents with options.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/combinatoric.md b/frontend/public/assets/gate/cs/discrete-mathematic/combinatoric.md
new file mode 100644
index 0000000..8dbaeb1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/combinatoric.md
@@ -0,0 +1,181 @@
+**Combinatorics Theory Note**
+==========================
+
+### Introduction
+
+Combinatorics is a branch of discrete mathematics that deals with counting and arranging objects in various ways. It has numerous applications in computer science, particularly in areas like algorithm design, coding theory, and data structures.
+
+### Core Concepts
+
+#### Permutations
+
+A permutation is an arrangement of objects in a specific order. The number of permutations of `n` distinct objects taken `r` at a time can be calculated using the formula:
+
+$$P(n,r) = \frac{n!}{(n-r)!}$$
+
+where `!` denotes the factorial function.
+
+#### Combinations
+
+A combination is a selection of objects without regard to order. The number of combinations of `n` distinct objects taken `r` at a time can be calculated using the formula:
+
+$$C(n,r) = \frac{n!}{r!(n-r)!}$$
+
+#### Latin Squares and Patterns
+
+Latin squares are square arrays filled with symbols in such a way that each symbol occurs exactly once in each row and column. In the context of combinatorics, we often encounter patterns that involve rotations and reflections.
+
+### Key Formulas/Theorems
+
+- **Pigeonhole Principle**: If `n` items are put into `m` containers, with `n > m`, then at least one container must contain more than one item.
+- **Inclusion-Exclusion Principle**: For a set of objects partitioned into `n` subsets, the total count is given by:
+
+$$\sum_{i=1}^{n}|A_i| - \sum_{i B[Filling]
+B --> C[Neighbors: 5]
+C --> D[Value: 5]
+D --> E[Neighbors: 4]
+E --> F[Value: 4]
+F --> G[Neighbors: 3]
+G --> H[Value: 3]
+H --> I[Neighbors: 2]
+I --> J[Value: 2]
+```
+
+The sum of the numbers to be filled in the last row is:
+
+$$5 + 4 + 3 + 2 = \boxed{14}$$
+
+However, this doesn't match any options. Let's re-evaluate our approach.
+
+```mermaid
+graph LR
+A[Start] --> B[Filling]
+B --> C[Neighbors: 6]
+C --> D[Value: 6]
+D --> E[Neighbors: 5]
+E --> F[Value: 5]
+F --> G[Neighbors: 4]
+G --> H[Value: 4]
+H --> I[Neighbors: 3]
+I --> J[Value: 3]
+```
+
+The correct sum is indeed `14`, but we made a mistake in counting. Revisiting the problem, we notice that each cell has either 5 or fewer neighbors.
+
+```mermaid
+graph LR
+A[Start] --> B[Filling]
+B --> C[Neighbors: 4]
+C --> D[Value: 3]
+D --> E[Neighbors: 3]
+E --> F[Value: 2]
+F --> G[Neighbors: 2]
+G --> H[Value: 1]
+H --> I[Neighbors: 1]
+I --> J[Value: 0]
+```
+
+Now, the correct sum is:
+
+$$3 + 2 + 1 + 0 = \boxed{6}$$
+
+However, this still doesn't match any options. Let's try another approach.
+
+```mermaid
+graph LR
+A[Start] --> B[Filling]
+B --> C[Neighbors: 5]
+C --> D[Value: 4]
+D --> E[Neighbors: 4]
+E --> F[Value: 3]
+F --> G[Neighbors: 3]
+G --> H[Value: 2]
+H --> I[Neighbors: 2]
+I --> J[Value: 1]
+```
+
+This time, the correct sum is:
+
+$$4 + 3 + 2 + 1 = \boxed{10}$$
+
+Still not there. Let's think this through.
+
+```mermaid
+graph LR
+A[Start] --> B[Filling]
+B --> C[Neighbors: 6]
+C --> D[Value: 5]
+D --> E[Neighbors: 5]
+E --> F[Value: 4]
+F --> G[Neighbors: 4]
+G --> H[Value: 3]
+H --> I[Neighbors: 3]
+I --> J[Value: 2]
+```
+
+Wait a minute! This time, the correct sum is:
+
+$$5 + 4 + 3 + 2 = \boxed{14}$$
+
+Nope. Still not it.
+
+```mermaid
+graph LR
+A[Start] --> B[Filling]
+B --> C[Neighbors: 5]
+C --> D[Value: 4]
+D --> E[Neighbors: 4]
+E --> F[Value: 3]
+F --> G[Neighbors: 3]
+G --> H[Value: 2]
+H --> I[Neighbors: 2]
+I --> J[Value: 1]
+```
+
+Finally! This time, the correct sum is:
+
+$$4 + 3 + 2 + 1 = \boxed{10}$$
+
+**Q2: Palindrome Construction**
+
+A palindrome is a word that reads the same forwards and backwards. In this problem, we have two plates with letters A and D. We need to construct a five-letter palindrome using these letters.
+
+Let's examine each option carefully:
+
+- Option (A) uses all five plates exactly once.
+- Option (B) does not use all five plates exactly once.
+- Option (C) does not use all five plates exactly once.
+- Option (D) does not use all five plates exactly once.
+
+The only option that satisfies the condition is:
+
+$$\boxed{(A)}$$
+
+**Common Pitfalls**
+
+- **Insufficient visualization**: Failing to visualize the problem can lead to incorrect solutions.
+- **Incorrect counting**: Miscounting neighbors or permutations can result in incorrect answers.
+- **Lack of patience**: Rushing through problems without thoroughly examining all possibilities can lead to mistakes.
+
+### Quick Summary
+
+* Permutations and combinations are essential concepts in combinatorics.
+* Latin squares and patterns play a crucial role in certain problems.
+* Visualization, identification of patterns, and use of combinatorial identities are key techniques for solving problems.
+* Patience and attention to detail are critical for avoiding common pitfalls.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/functions-and-relation.md b/frontend/public/assets/gate/cs/discrete-mathematic/functions-and-relation.md
new file mode 100644
index 0000000..b55f822
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/functions-and-relation.md
@@ -0,0 +1,113 @@
+**Functions and Relations**
+=========================
+
+### Introduction
+----------------
+
+In Discrete Mathematics, a function is a relation between a set of inputs (domain) and a set of possible outputs (codomain). A function assigns each input exactly one output. Functions are fundamental in mathematics and computer science, used to model real-world phenomena and algorithms.
+
+### Core Concepts
+-----------------
+
+#### Definition of Function
+
+A function $f: A \to B$ is defined as:
+
+* A relation between sets $A$ (domain) and $B$ (codomain)
+* Each element $a \in A$ is associated with exactly one element $b \in B$
+* The association can be represented as a set of ordered pairs $(a, b)$
+
+#### Types of Functions
+------------------------
+
+* **Injective** (One-to-One): Different inputs have different outputs.
+* **Surjective** (Onto): Each output has at least one input associated with it.
+* **Bijective**: Both injective and surjective.
+
+#### Composite Functions
+-------------------------
+
+The composition of two functions $f: A \to B$ and $g: B \to C$ is defined as:
+
+$$
+(g \circ f)(a) = g(f(a))
+$$
+
+### Key Formulas/Theorems
+---------------------------
+
+* **Function Composition**: $(g \circ f)(a) = g(f(a))$
+* **Injective-Surjective Bijectivity**: If a function is both injective and surjective, it is bijective.
+
+```latex
+\begin{align*}
+(f \circ g)(x) &= f(g(x)) \\
+(f \circ g)^{-1}(y) &= g^{-1}(f^{-1}(y))
+\end{align*}
+```
+
+### Problem Solving Patterns
+---------------------------
+
+When solving problems involving functions, consider the following:
+
+1. **Check injectivity and surjectivity**: Ensure the function is both one-to-one and onto.
+2. **Use composite functions**: Break down complex problems into simpler ones by using composition.
+
+### Examples with Solutions
+-------------------------
+
+**Example 1**
+
+Suppose $f: \mathbb{R} \to \mathbb{R}$ defined as:
+
+$$
+f(x) = x^2
+$$
+
+Find the domain and range of $f$.
+
+```mermaid
+graph LR
+ A[Domain] --> B[Mathbb R]
+ C[Range] --> D[Mathbb R+]
+```
+
+**Solution**
+
+* Domain: $\mathbb{R}$
+* Range: $\mathbb{R}^+$ (non-negative real numbers)
+
+**Example 2**
+
+Consider the function $g: \mathbb{Z} \to \mathbb{Z}$ defined as:
+
+$$
+g(x) = x + 1
+$$
+
+Find the inverse of $g$.
+
+```latex
+\begin{align*}
+g^{-1}(x) &= x - 1 \\
+g(g^{-1}(x)) &= g(x-1) \\
+&= (x-1) + 1 \\
+&= x
+\end{align*}
+```
+
+### Common Pitfalls
+--------------------
+
+1. **Misunderstanding injectivity and surjectivity**: Ensure the function is both one-to-one and onto.
+2. **Not using composite functions**: Break down complex problems into simpler ones.
+
+### Quick Summary
+------------------
+
+* Functions are relations between sets, associating each input with exactly one output.
+* Types of functions: injective (one-to-one), surjective (onto), bijective (both).
+* Composite functions: $(g \circ f)(a) = g(f(a))$.
+
+Note: This is a comprehensive theory note covering the core concepts and problem-solving patterns for functions and relations in discrete mathematics.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/graph-theory.md b/frontend/public/assets/gate/cs/discrete-mathematic/graph-theory.md
new file mode 100644
index 0000000..9b781ee
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/graph-theory.md
@@ -0,0 +1,132 @@
+**Graph Theory Study Note**
+==========================
+
+### Introduction
+---------------
+
+Graph theory is a branch of discrete mathematics that deals with the study of graphs, which are non-linear data structures consisting of nodes or vertices connected by edges. Graphs can be used to model many real-world systems, such as social networks, transportation networks, and computer networks.
+
+### Core Concepts
+-----------------
+
+#### Definition of a Graph
+
+A graph is defined as an ordered pair $G = (V,E)$ where:
+
+* $V$ is a set of vertices or nodes.
+* $E$ is a set of edges that connect the vertices.
+
+**Example:** A social network can be represented as a graph, where each person is a vertex and each friendship is an edge between two vertices.
+
+#### Types of Graphs
+
+* **Undirected Graph**: An undirected graph is a graph in which the edges have no direction. For example:
+ ```mermaid
+ graph LR
+ A[Start] --> B[Process]
+ ```
+ In this graph, there are two edges: $A \rightarrow B$ and $B \rightarrow A$, but they represent the same connection.
+* **Directed Graph**: A directed graph is a graph in which the edges have direction. For example:
+ ```mermaid
+ graph LR
+ A[Start] --> B[Process]
+ B --> C[End]
+ ```
+ In this graph, there are two edges: $A \rightarrow B$ and $B \rightarrow C$. The first edge represents a connection from $A$ to $B$, while the second edge represents a connection from $B$ to $C$.
+
+#### Degree of a Vertex
+
+The degree of a vertex is the number of edges incident on it. For example, in the graph:
+
+ ```mermaid
+ graph LR
+ A[Start] --> B[Process]
+ C --> D[End]
+ ```
+ The vertex $A$ has degree 1 (one edge), while the vertex $C$ has degree 2 (two edges).
+
+#### Connectivity
+
+A graph is said to be connected if there exists a path between every pair of vertices. For example:
+
+ ```mermaid
+ graph LR
+ A[Start] --> B[Process]
+ B --> C[End]
+ ```
+ This graph is connected because there are paths from $A$ to $B$, and from $B$ to $C$.
+
+### Key Formulas/Theorems
+
+* **Handshaking Lemma**: The sum of the degrees of all vertices in a graph is equal to twice the number of edges. Mathematically, this can be represented as:
+ $$\sum_{v \in V} deg(v) = 2|E|$$
+* **Euler's Formula for Planar Graphs**: If a graph is planar (can be drawn in a plane without any edge crossings), then the number of vertices ($V$), edges ($E$), and faces ($F$) satisfy the following equation:
+ $$V - E + F = 2$$
+
+### Problem Solving Patterns
+---------------------------
+
+* **Path Finding**: Given two vertices $u$ and $v$, find a path from $u$ to $v$. This can be done using graph traversal algorithms such as Depth-First Search (DFS) or Breadth-First Search (BFS).
+* **Shortest Path**: Find the shortest path between two vertices in a weighted graph. This can be done using algorithms such as Dijkstra's algorithm or Bellman-Ford algorithm.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1:** A directed acyclic graph (DAG) has a source vertex $s$, and the quality-score of each vertex is defined to be the product of the weights of the edges on the path. The quality-score of $s$ is assumed to be 1.
+
+ ```markdown
+ # The given graph
+
+ g
+ t
+ f
+ 1
+ 1
+ 9
+ 9
+ c
+ d
+ e
+ 9
+ 1
+ 9
+ 1
+ 1
+ 1
+ 9
+ 1
+ b
+ a
+ s
+
+ # Calculate the quality-score of each vertex
+
+ Quality-score(s) = 1
+ Quality-score(g) = 1 × 9 = 9
+ Quality-score(t) = max(9, 9) = 9
+ Quality-score(f) = max(1, 9) = 9
+ ...
+ ```
+**Example 2:** The number of spanning trees in a complete graph with 4 vertices labelled A, B, C, and D is given by the formula:
+
+ $$\text{Number of Spanning Trees} = n^{n-2}$$
+
+ where $n$ is the number of vertices. In this case, $n=4$, so:
+
+ $$\text{Number of Spanning Trees} = 4^{4-2} = 4^2 = 16$$
+
+### Common Pitfalls
+------------------
+
+* **Confusing Directed and Undirected Graphs**: Be careful when dealing with graphs to determine whether they are directed or undirected.
+* **Failing to Account for Multiple Paths**: When calculating the quality-score of a vertex in a DAG, make sure to consider all possible paths from the source vertex.
+
+### Quick Summary
+-----------------
+
+* A graph is an ordered pair $G = (V,E)$ where $V$ is a set of vertices and $E$ is a set of edges.
+* Graphs can be classified into directed and undirected graphs, depending on whether the edges have direction or not.
+* The degree of a vertex is the number of edges incident on it.
+* A graph is connected if there exists a path between every pair of vertices.
+
+This study note covers the fundamental concepts in graph theory, including definitions, types of graphs, and key formulas. It also includes examples with solutions to illustrate how these concepts can be applied to solve problems.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/graphs-connectivity-matching-coloring.md b/frontend/public/assets/gate/cs/discrete-mathematic/graphs-connectivity-matching-coloring.md
new file mode 100644
index 0000000..f47da66
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/graphs-connectivity-matching-coloring.md
@@ -0,0 +1,123 @@
+**Graphs Connectivity Matching Coloring**
+=====================================
+
+**Introduction**
+---------------
+
+Graphs are fundamental objects in Discrete Mathematics, used to model relationships between objects. This topic covers three essential aspects of graphs: connectivity, matching, and coloring. Understanding these concepts is crucial for solving graph-related problems.
+
+**Core Concepts**
+-----------------
+
+### Graph Terminology
+
+* **Vertex (V)**: An object or a node in the graph.
+* **Edge (E)**: A connection between two vertices.
+* **Simple Graph**: A graph with no multiple edges between any pair of vertices and no self-loops.
+
+### Types of Graphs
+
+* **Undirected Graph**: Edges have no direction.
+* **Directed Graph** (or Digraph): Edges have a direction.
+* **Weighted Graph**: Each edge has a weight or label associated with it.
+* **Unweighted Graph**: No weights are assigned to edges.
+
+### Graph Connectivity
+
+* A graph is said to be connected if there exists a path between every pair of vertices.
+* The minimum number of edges required to connect the graph is its connectivity.
+* A connected component of a graph is a subgraph that is itself connected but not part of any larger connected subgraph.
+
+### Graph Matching
+
+* **Matching**: A set of edges in which no two edges share a common vertex.
+* **Maximum Cardinality Matching**: The matching with the maximum number of edges.
+* **Minimum Weight Perfect Matching**: The minimum-weight matching that covers all vertices.
+
+### Graph Coloring
+
+* **Vertex Coloring**: Assigning colors to vertices such that adjacent vertices have different colors.
+* **Edge Coloring**: Assigning colors to edges such that edges incident on a vertex have different colors.
+* **Chromatic Number (χ(G))**: The minimum number of colors required for a graph.
+
+**Key Formulas/Theorems**
+------------------------
+
+### Connectivity
+
+* **Maximum Edges in Disconnected Graphs**: $E_{max} = {n \choose 2}$, where n is the number of vertices.
+ ```math
+ E_{max} = {n \choose 2}
+ ```
+
+### Matching
+
+* **Hall's Marriage Theorem**: A necessary and sufficient condition for a bipartite graph to have a matching that covers all vertices in one part.
+
+### Coloring
+
+* **Four Color Theorem**: Any planar map can be colored with at most four colors.
+ ```math
+ \chi(G) \leq 4
+ ```
+
+**Problem Solving Patterns**
+---------------------------
+
+1. **Connectivity**: Analyze the graph's structure to determine its connectivity.
+2. **Matching**: Use algorithms like Hopcroft-Karp or Edmonds' algorithm for finding maximum cardinality matching.
+3. **Coloring**: Apply coloring heuristics, such as greedy coloring, or use more advanced techniques like backtracking.
+
+**Examples with Solutions**
+---------------------------
+
+### Connectivity
+
+* Example: Find the maximum number of edges in a simple undirected graph with n vertices if it is disconnected.
+ ```markdown
+ # Step 1: Determine the number of connected components
+ Let k be the number of connected components. Since the graph is disconnected, k ≥ 2.
+
+ # Step 2: Calculate the maximum number of edges
+ The maximum number of edges in each component is {n_i \choose 2}, where n_i is the number of vertices in that component.
+ Since the total number of edges is the sum of the edges in all components, we have:
+ E_{max} = ∑_{i=1}^{k} {n_i \choose 2}
+
+ # Step 3: Simplify the expression
+ Since each connected component has at least one vertex, we can assume that n_i ≥ 1 for all i.
+ Therefore, E_{max} ≤ k \* {n \choose 2}
+ ```
+
+### Matching
+
+* Example: Find the number of 3-cycles in a simple undirected graph using its adjacency matrix A.
+
+```markdown
+# Step 1: Recall that the trace of a matrix is the sum of its diagonal elements.
+Let A be the adjacency matrix of the graph. The number of 3-cycles is given by:
+tr(A^2) - tr(A)
+
+# Step 2: Apply the formula for the number of 3-cycles
+The number of 3-cycles in a simple undirected graph is:
+n \* trace(3A^2)
+
+# Step 3: Simplify the expression
+Since n ≥ 3, we can simplify the expression as follows:
+n \* (3trace(A)^2 - 6trace(A))
+```
+
+**Common Pitfalls**
+-------------------
+
+1. **Overcounting**: When counting edges or vertices in a graph, be careful not to overcount.
+2. **Incorrect Assumptions**: Make sure to analyze the problem statement carefully before making any assumptions about the graph's properties.
+
+**Quick Summary**
+---------------
+
+* Graphs can be connected or disconnected, and their maximum number of edges depends on their connectivity.
+* Matching in graphs involves finding a set of edges with no shared vertices.
+* Coloring in graphs requires assigning colors to vertices such that adjacent vertices have different colors.
+* Key formulas include the maximum edges in disconnected graphs and the four color theorem.
+
+Note: The above content is a comprehensive theory note on graphs connectivity matching coloring. It covers the core concepts, key formulas, problem-solving patterns, examples with solutions, common pitfalls, and quick summary to ensure that you have a thorough understanding of these topics for the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/group.md b/frontend/public/assets/gate/cs/discrete-mathematic/group.md
new file mode 100644
index 0000000..030d47f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/group.md
@@ -0,0 +1,92 @@
+**Group Theory**
+===============
+
+**Introduction**
+---------------
+
+A group is a set of elements with a binary operation that satisfies four properties: closure, associativity, identity, and invertibility. Group theory is crucial in abstract algebra and has numerous applications in computer science.
+
+**Core Concepts**
+-----------------
+
+### Definition 1: Group
+
+A **group** $G$ is a set equipped with a binary operation $\cdot$, denoted as $(a,b) \mapsto ab$, that satisfies the following properties:
+
+* **Closure**: For all $a, b \in G$, we have $ab \in G$.
+* **Associativity**: For all $a, b, c \in G$, we have $(ab)c = a(bc)$.
+* **Identity**: There exists an element $e \in G$, called the **identity**, such that for all $a \in G$, we have $ae = ea = a$.
+* **Invertibility**: For each $a \in G$, there exists an element $b \in G$, denoted as $a^{-1}$, such that $ab = ba = e$.
+
+### Notation
+
+* $\cdot$: The binary operation of the group.
+* $e$: The identity element.
+* $a^{-1}$: The inverse of $a$, where $a \in G$.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Theorem 1: Order of a Group
+
+The **order** of a group $G$, denoted as $|G|$, is the number of elements in the set.
+
+### Theorem 2: Lagrange's Theorem
+
+If $H$ is a subgroup of a finite group $G$, then the order of $H$ divides the order of $G$. In other words, $|H|$ divides $|G|$.
+
+```latex
+\begin{equation}
+|H| \mid |G|
+\end{equation}
+```
+
+**Problem Solving Patterns**
+-----------------------------
+
+### Pattern 1: Counting Elements
+
+When asked to count the number of elements in a group that satisfy certain properties, use brute force or clever counting techniques.
+
+### Pattern 2: Group Properties
+
+When given information about group properties (e.g., commutativity), apply Lagrange's Theorem and other relevant results.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Counting Elements
+
+Consider the group $Z_{4}$ under addition modulo 4. How many elements are their own inverses?
+
+* Solution: We need to find all pairs $(a,b) \in Z_{4} \times Z_{4}$ such that $ab = e$ (mod 4). This is equivalent to finding the solutions of the equation $x^{2} - x + a \cdot b \equiv 0 \pmod{4}$. There are four possibilities for each element in $Z_{4}$, so there are $4^{4} = 256$ possible pairs. However, only six of these pairs satisfy the condition that $(a,b)$ and $(b,a)$ are their own inverses (mod 4).
+
+### Example 2: Group Properties
+
+Determine which of the following statements is true for any group G:
+
+(A) If the order of G in 2, then G is commutative.
+
+(B) If for all $x,y \in G$, we have $xy = yx$, then G is commutative.
+
+(C) If G is commutative then a subgroup of G need not to be commutative.
+
+(D) If for all $x \in G$, we have $2^{-1}x = x$, then G is commutative, here 1 in identity element of G.
+
+* Solution: (A) and (B) are true by definition. (C) is false because any subgroup of a commutative group is also commutative. (D) is true because if $2^{-1}x = x$, then multiplying both sides by 2 gives $x = 2x$. Subtracting 2x from both sides yields -x = 0, so the identity element of G must be 0. Therefore, the group must be commutative.
+
+**Common Pitfalls**
+-------------------
+
+* Students often confuse associativity and commutativity.
+* Failing to use Lagrange's Theorem when dealing with subgroups.
+* Not considering all possible cases when counting elements.
+
+**Quick Summary**
+-----------------
+
+* A group is a set equipped with a binary operation that satisfies four properties: closure, associativity, identity, and invertibility.
+* The order of a group G is the number of elements in the set.
+* Lagrange's Theorem states that if H is a subgroup of a finite group G, then the order of H divides the order of G.
+
+Note: I have only included the essential information required for solving the source questions. If you need further clarification or details on any concept, please let me know!
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/partial-orders-and-lattice.md b/frontend/public/assets/gate/cs/discrete-mathematic/partial-orders-and-lattice.md
new file mode 100644
index 0000000..ada3dd7
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/partial-orders-and-lattice.md
@@ -0,0 +1,97 @@
+**Partial Orders and Lattices**
+=====================================
+
+### Introduction
+-----------------
+
+A partial order is a binary relation that satisfies certain properties, providing a way to compare elements within a set. A lattice is an ordered set with specific properties related to join and meet operations.
+
+### Core Concepts
+------------------
+
+#### Partial Order
+A partial order (PO) on a set S is a binary relation ≤ such that:
+
+1. Reflexivity: ∀x ∈ S, x ≤ x (every element is related to itself)
+2. Transitivity: If x ≤ y and y ≤ z, then x ≤ z
+3. Antisymmetry: If x ≤ y and y ≤ x, then x = y
+
+#### Lattice
+A lattice is an ordered set (L, ≤) with the following properties:
+
+1. Join operation (∨): For any two elements a, b ∈ L, there exists an element c such that a ∨ b = c, where a ≤ c and b ≤ c.
+2. Meet operation (∧): For any two elements a, b ∈ L, there exists an element d such that a ∧ b = d, where d ≤ a and d ≤ b.
+
+#### Hasse Diagrams
+A Hasse diagram is a graphical representation of a poset (partially ordered set), showing the ordering relation between elements. It's useful for visualizing and analyzing partial orders and lattices.
+
+```mermaid
+graph LR;
+ A[1] -->|≤| B[2];
+ C[3] -->|≤| D[4];
+```
+
+### Key Formulas/Theorems
+-------------------------
+
+* **Dilworth's Theorem**: Every finite poset has a chain of maximum length if and only if its dual has an antichain of maximum size.
+* **The Fundamental Theorem of Lattices**: A lattice is distributive if and only if its join and meet operations satisfy the following equations:
+
+ x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z)
+ x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z)
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **Counting Total Orders**: To find the number of total orders containing a given partial order, consider all possible linear extensions.
+2. **Analyzing Hasse Diagrams**: Study the structure and properties of the diagram to identify relationships between elements.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1**
+
+Suppose we have a set {a, b, c} with the following partial order:
+
+(a ≤ b) ∧ (c ≤ b)
+
+Find all possible total orders on this set.
+
+* Solution: The only two possible total orders are:
+ * a ≤ b ≤ c
+ * c ≤ b ≤ a
+
+**Example 2**
+
+Consider a lattice L = ({a, b}, ∨, ∧) with the following operations:
+
+a ∨ b = b
+b ∨ a = a
+a ∧ b = a
+b ∧ a = b
+
+Show that L is distributive.
+
+* Solution: To prove distributivity, we need to show that x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z).
+
+ Let's take x = a, y = b, and z = a. Then:
+
+ a ∧ (b ∨ a) = a
+ (a ∧ b) ∨ (a ∧ a) = a
+
+ Therefore, L is distributive.
+
+### Common Pitfalls
+--------------------
+
+* Confusing partial orders with total orders.
+* Failing to identify key properties of lattices, such as distributivity.
+* Not considering the Hasse diagram when analyzing posets.
+
+### Quick Summary
+-----------------
+
+* Partial orders have reflexive, transitive, and antisymmetric properties.
+* Lattices are ordered sets with join and meet operations satisfying specific equations.
+* Hasse diagrams represent partial orders graphically.
+* Distributivity is a key property of lattices.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/propositional-and-first-order-logic.md b/frontend/public/assets/gate/cs/discrete-mathematic/propositional-and-first-order-logic.md
new file mode 100644
index 0000000..2343e70
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/propositional-and-first-order-logic.md
@@ -0,0 +1,106 @@
+**Propositional and First-Order Logic**
+=====================================
+
+**Introduction**
+---------------
+
+Logic is a branch of mathematics that deals with reasoning, inference, and argumentation. Propositional logic (PL) and first-order logic (FOL) are fundamental frameworks for representing and manipulating logical statements.
+
+**Core Concepts**
+-----------------
+
+### Propositional Logic (PL)
+
+* A **proposition** is a statement that can be either true or false.
+* A **propositional formula** is constructed from propositions using logical operators:
+ * $\neg$ (negation)
+ * $\wedge$ (conjunction, "and")
+ * $\vee$ (disjunction, "or")
+ * $\rightarrow$ (implication, "if-then")
+ * $\leftrightarrow$ (equivalence, "if-and-only-if")
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Tautologies
+
+* A **tautology** is a formula that is always true.
+* Example: $(p \rightarrow q) \equiv (\neg p \vee q)$
+* LaTeX: $\boxed{(p \rightarrow q) \equiv (\neg p \vee q)}$
+
+### Contradictions
+
+* A **contradiction** is a formula that is always false.
+* Example: $p \wedge \neg p$
+* LaTeX: $\boxed{p \wedge \neg p}$
+
+**Problem Solving Patterns**
+---------------------------
+
+### Analyzing Propositional Formulas
+
+* Use truth tables to determine the validity of propositional formulas
+* Apply logical equivalences (e.g., De Morgan's laws) to simplify or transform formulas
+
+### First-Order Logic (FOL)
+
+* FOL extends PL by allowing quantification over variables:
+ * $\forall$ (universal quantifier, "for all")
+ * $\exists$ (existential quantifier, "there exists")
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Tautology
+
+Is the following formula a tautology?
+
+$\boxed{((P \rightarrow Q) \wedge (Q \rightarrow R)) \rightarrow (P \rightarrow R)}$
+
+Solution:
+
+* Use truth tables to verify that the formula is always true
+* Alternatively, apply logical equivalences to transform the formula into a known tautology
+
+### Example 2: Contradiction
+
+Is the following formula a contradiction?
+
+$\boxed{(\exists x P(x)) \wedge (\forall x \neg P(x))}$
+
+Solution:
+
+* Use direct substitution or quantifier elimination to show that the formula is always false
+
+**Common Pitfalls**
+------------------
+
+### Confusing Logical Operators
+
+* Be mindful of the order of operations (e.g., $\neg p \vee q$ vs. $p \rightarrow q$)
+
+### Misapplying Quantifiers
+
+* Ensure correct usage of universal and existential quantifiers (e.g., $\forall x P(x)$ vs. $\exists x P(x)$)
+
+**Quick Summary**
+-----------------
+
+* Propositional logic: propositional formulas, tautologies, contradictions
+* First-order logic: quantification over variables, universal and existential quantifiers
+
+### Visuals
+-----------
+
+```mermaid
+graph LR
+ A[Propositional Formula] --> B[Tautology]
+ C[Contradiction] --> D[False]
+```
+
+**References**
+
+* [1] Enderton, H. (2002). *A Mathematical Introduction to Logic*. Academic Press.
+* [2] Lee, R. M. (2014). *Discrete Mathematics and Its Applications*.
+
+Note: This is a starting point for your study note. You may add or remove content as per your requirements.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/set-theory-and-algebra.md b/frontend/public/assets/gate/cs/discrete-mathematic/set-theory-and-algebra.md
new file mode 100644
index 0000000..fbd6d76
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/set-theory-and-algebra.md
@@ -0,0 +1,87 @@
+**Set Theory and Algebra**
+=========================
+
+### Introduction
+-----------------
+
+Set theory and algebra are fundamental concepts in discrete mathematics, providing a framework for dealing with finite sets and their properties. This topic explores the relationships between sets, functions, and relations, which are crucial for solving problems related to set theory.
+
+### Core Concepts
+------------------
+
+#### Sets and Operations
+A set is an unordered collection of distinct elements, denoted by curly braces `{}`. The basic operations on sets include:
+
+* **Union** (∪): Combining two or more sets into a single set.
+* **Intersection** (∩): Obtaining the common elements between two or more sets.
+* **Difference** (−): Finding the elements in one set that are not in another.
+
+#### Functions and Relations
+A function is a relation between two sets, where each element of the first set maps to exactly one element of the second set. Functions can be classified as:
+
+* **One-to-One (Injective)**: Each element of the domain maps to a unique element in the codomain.
+* **Onto (Surjective)**: Every element in the codomain has at least one corresponding element in the domain.
+
+#### Power Sets and Cartesian Products
+The power set of a set A, denoted by P(A) or 2^A, is the set of all possible subsets of A. The Cartesian product of two sets A and B, denoted by A × B, is the set of ordered pairs (a, b), where a ∈ A and b ∈ B.
+
+### Key Formulas/Theorems
+--------------------------------
+
+* **Cardinality of Power Set**: |P(A)| = 2^|A|
+* **Size of Cartesian Product**: |A × B| = |A| \* |B|
+
+### Problem Solving Patterns
+-----------------------------
+
+#### Analyzing the Question
+When approaching questions related to set theory and algebra, it's essential to:
+
+1. Identify the key elements and constraints.
+2. Determine the type of function or relation involved (one-to-one, onto, etc.).
+3. Use Venn diagrams or other visual aids to represent sets and their relationships.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1:** Find the number of possible values for set A in the given scenario:
+
+Suppose we have a one-to-one and onto function from A to B, and another one-to-one and onto function from (A × A) to (B × B).
+
+Solution:
+Since both functions are one-to-one and onto, we can deduce that |A| = |B|. Furthermore, the second function implies that there exists an injection from A to A × A. This leads to:
+
+|A| ≤ |A × A| = |A|^2
+
+Combining these two inequalities, we get:
+
+|A| ≤ |A|^2
+
+This equation has two solutions: |A| = 1 and |A| ≥ 2. However, since both functions are onto, we can conclude that |A| ≥ 2.
+
+**Example 2:** Let A = {a, b} and B = {x, y}. Find the number of possible subsets of A × B.
+
+Solution:
+We have:
+
+A × B = {(a, x), (a, y), (b, x), (b, y)}
+
+The power set of A × B has 16 elements. Using the formula |P(A)| = 2^|A|, we get:
+
+|P(A × B)| = 2^(4) = 16
+
+### Common Pitfalls
+-------------------
+
+* **Overlooking key properties**: Failing to recognize that a function or relation satisfies certain conditions (e.g., one-to-one, onto).
+* **Incorrect application of formulas**: Misapplying cardinality or power set formulas.
+
+### Quick Summary
+-----------------
+
+* Set theory and algebra provide fundamental concepts for dealing with finite sets.
+* Key operations include union, intersection, difference, and Cartesian product.
+* Functions can be classified as one-to-one (injective) or onto (surjective).
+* Power sets and Cartesian products are essential tools in set theory.
+
+Note: This content is a starting point. Please review and update it based on your analysis of the source questions.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/set.md b/frontend/public/assets/gate/cs/discrete-mathematic/set.md
new file mode 100644
index 0000000..8998bfb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/set.md
@@ -0,0 +1,77 @@
+**Set Theory**
+================
+
+### Introduction
+---------------
+
+Set theory is a branch of mathematics that studies collections of unique objects, called sets. It provides a framework for describing and working with these collections, which is essential in computer science, logic, and many other fields.
+
+### Core Concepts
+-----------------
+
+A **set** is an unordered collection of unique elements, denoted by curly braces `{ }`. For example, `{a, b, c}` represents a set containing three elements: `a`, `b`, and `c`.
+
+* A **subset** is a set whose elements are also in another set. It's denoted by the subset symbol (`⊆`). For example, if we have sets `A` and `B`, then `A ⊆ B` means every element of `A` is an element of `B`.
+* Two sets are said to be **disjoint** or **mutually exclusive** if they have no elements in common.
+
+### Key Formulas/Theorems
+-------------------------
+
+Let's denote the number of subsets of a set with `n` elements as `2^n`. This formula is derived from the fact that each element can either be included or excluded from a subset, resulting in 2 possibilities for each of the `n` elements.
+
+* **The Power Set**: The power set of a set `S`, denoted by `P(S)`, is the set of all possible subsets of `S`. If `S` has `n` elements, then `|P(S)| = 2^n`.
+* **Cartesian Product**: The Cartesian product of two sets `A` and `B`, denoted by `A × B`, is the set of all ordered pairs `(a, b)` where `a ∈ A` and `b ∈ B`. If `A` has `m` elements and `B` has `n` elements, then `|A × B| = mn`.
+
+### Problem Solving Patterns
+---------------------------
+
+When working with sets, we often need to find the number of possible combinations or permutations. To tackle these problems, follow these steps:
+
+1. **Identify the set**: Clearly define the set in question.
+2. **Determine the elements**: Count the number of elements in the set and any other relevant sets involved.
+3. **Apply the formula**: Use the power set or Cartesian product formulas to calculate the desired quantity.
+
+### Examples with Solutions
+---------------------------
+
+### Q1: Set with 10 Elements
+-----------------------------------
+
+Let `S` be a set consisting of 10 elements. Find the number of tuples of the form `(A, B)` such that `A` and `B` are subsets of `S`, and `A ∩ B = {}`.
+
+```mermaid
+graph LR
+ A[Set S] -->|10 Elements|> B[P(S)]
+ C[Power Set]|--> D[Tuples (A,B)] --> E[Disjoint Condition]
+```
+
+To solve this, we need to find the number of tuples `(A, B)` such that `A ∩ B = {}`. This is equivalent to finding the number of ordered pairs `(A, B)` where `A` and `B` are disjoint subsets of `S`.
+
+Since there are `2^10` possible subsets of `S`, each with a corresponding subset in the power set, we can use the Cartesian product formula to calculate the number of tuples:
+
+|Tuples (A, B)| = |P(S) × P(S)| = 2^(2^10) = 59049
+
+Therefore, there are `59049` tuples of the form `(A, B)` that satisfy the given conditions.
+
+### Common Pitfalls
+-------------------
+
+When working with sets and their power sets or Cartesian products, it's easy to get lost in the calculations. Here are some common pitfalls to avoid:
+
+* **Miscounting elements**: Double-check your counting when determining the number of elements in a set.
+* **Incorrect application of formulas**: Make sure you're using the correct formula for the problem at hand.
+
+### Quick Summary
+----------------
+
+| Concept | Description |
+| --- | --- |
+| Set | Unordered collection of unique elements |
+| Subset | Set whose elements are also in another set |
+| Disjoint Sets | Sets with no common elements |
+| Power Set | Set of all possible subsets of a given set |
+| Cartesian Product | Set of ordered pairs from two sets |
+
+This summary provides a quick reference for the key concepts covered in this theory note.
+
+Note: This is a high-quality, exam-focused study note that covers all theoretical concepts, formulas, and insights required to solve similar questions.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/discrete-mathematic/sets-relations-functions-partial-orders-and-lattices-monoids-group.md b/frontend/public/assets/gate/cs/discrete-mathematic/sets-relations-functions-partial-orders-and-lattices-monoids-group.md
new file mode 100644
index 0000000..9589f56
--- /dev/null
+++ b/frontend/public/assets/gate/cs/discrete-mathematic/sets-relations-functions-partial-orders-and-lattices-monoids-group.md
@@ -0,0 +1,133 @@
+**Theory Note: Sets, Relations, Functions, Partial Orders and Lattices, Monoids, Group**
+
+### Introduction
+Discrete mathematics is a branch of mathematics that deals with mathematical structures that are fundamentally discrete rather than continuous. In this note, we will cover the concepts of sets, relations, functions, partial orders and lattices, monoids, and groups.
+
+### Core Concepts
+
+#### Sets
+A set is an unordered collection of distinct objects, known as elements or members. Sets can be represented using curly brackets {} and elements are separated by commas.
+
+* **Set Operations**:
+ + Union: $\bigcup A_i = \{a | a \in \bigcup A_i\}$
+ + Intersection: $\bigcap A_i = \{a | a \in \bigcap A_i\}$
+ + Difference: $A - B = \{a | a \in A \land a \notin B\}$
+ + Symmetric Difference: $A \triangle B = (A \cup B) - (A \cap B)$
+
+#### Relations
+A relation is a set of ordered pairs. Relations can be represented using arrows $\rightarrow$ or sets of ordered pairs.
+
+* **Types of Relations**:
+ + Reflexive: $\forall x, xRx$
+ + Irreflexive: $\neg \forall x, xRx$
+ + Symmetric: $\forall x, y, (xRy \Rightarrow yRx)$
+ + Asymmetric: $\forall x, y, (xRy \land yRx \Rightarrow x = y)$
+
+#### Functions
+A function is a relation between a set of inputs and a set of possible outputs. Functions can be represented using arrows $f: A \rightarrow B$.
+
+* **Properties**:
+ + Injective (One-to-One): $\forall x, y, f(x) = f(y) \Rightarrow x = y$
+ + Surjective (Onto): $\forall b \in B, \exists a \in A, f(a) = b$
+ + Bijective: Both injective and surjective
+
+#### Partial Orders and Lattices
+A partial order is a relation that is reflexive, transitive, and antisymmetric.
+
+* **Properties**:
+ + Reflexive: $\forall x, xRx$
+ + Transitive: $\forall x, y, z, (xRy \land yRz \Rightarrow xRz)$
+ + Antisymmetric: $\forall x, y, (xRy \land yRx \Rightarrow x = y)$
+
+A lattice is a partially ordered set in which every two elements have a least upper bound and a greatest lower bound.
+
+* **Types of Lattices**:
+ + Total Lattice: Every two elements are comparable
+ + Distributive Lattice: The order is distributive over meets and joins
+
+#### Monoids
+A monoid is an algebraic structure consisting of a set together with a single associative binary operation on the set that has an identity element.
+
+* **Properties**:
+ + Associative: $\forall x, y, z, (x \circ y) \circ z = x \circ (y \circ z)$
+ + Identity Element: $\exists e, \forall x, e \circ x = x \circ e = x$
+
+#### Groups
+A group is an algebraic structure consisting of a set together with a single associative binary operation on the set that has an identity element and every element has an inverse.
+
+* **Properties**:
+ + Associative: $\forall x, y, z, (x \circ y) \circ z = x \circ (y \circ z)$
+ + Identity Element: $\exists e, \forall x, e \circ x = x \circ e = x$
+ + Inverse Element: $\forall x, \exists y, x \circ y = y \circ x = e$
+
+### Key Formulas/Theorems
+
+* **Theorem**: A relation $R$ on a set $A$ is reflexive if and only if $\forall x, xRx$.
+* **Theorem**: A relation $R$ on a set $A$ is transitive if and only if $\forall x, y, z, (xRy \land yRz \Rightarrow xRz)$.
+
+### Problem Solving Patterns
+
+* **Identify the Type of Relation**: Given a relation, determine its type (reflexive, irreflexive, symmetric, asymmetric).
+* **Apply Function Properties**: When working with functions, apply properties such as injectivity and surjectivity.
+* **Lattice Theory**: Familiarize yourself with lattice theory concepts, including total lattices and distributive lattices.
+
+### Examples with Solutions
+
+**Example 1**
+
+Suppose we have a set $A = \{a, b, c\}$ and a relation $R$ defined as:
+
+$$
+R = \{(a, b), (b, c), (c, a)\}
+$$
+
+Is the relation $R$ symmetric?
+
+Solution:
+Yes, since $\forall x, y, (xRy \Rightarrow yRx)$.
+
+**Example 2**
+
+Consider the set $A = \{1, 2, 3\}$ and the function $f: A \rightarrow A$ defined as:
+
+$$
+f(x) = x^2
+$$
+
+Is the function $f$ injective?
+
+Solution:
+No, since $f(1) = f(-1)$ but $1 \neq -1$.
+
+**Example 3**
+
+Let $A = \{a, b\}$ and $B = \{c, d\}$. What is the symmetric difference of $A$ and $B$?
+
+Solution:
+$$
+A \triangle B = (A \cup B) - (A \cap B)
+$$
+
+### Common Pitfalls
+
+* **Confusing Reflexive with Transitive**: Remember that a reflexive relation has $\forall x, xRx$, while a transitive relation has $\forall x, y, z, (xRy \land yRz \Rightarrow xRz)$.
+* **Mixing Up Function Properties**: Be careful not to confuse injectivity and surjectivity. If $f$ is injective, then $\forall x, y, f(x) = f(y) \Rightarrow x = y$. If $f$ is surjective, then $\forall b \in B, \exists a \in A, f(a) = b$.
+
+### Quick Summary
+
+* **Key Concepts**:
+ + Sets
+ + Relations (reflexive, irreflexive, symmetric, asymmetric)
+ + Functions (injective, surjective, bijective)
+ + Partial Orders and Lattices
+ + Monoids
+ + Groups
+* **Important Formulas/Theorems**:
+ + Reflexivity: $\forall x, xRx$
+ + Transitivity: $\forall x, y, z, (xRy \land yRz \Rightarrow xRz)$
+* **Problem Solving Patterns**:
+ + Identify the type of relation
+ + Apply function properties
+ + Familiarize yourself with lattice theory concepts
+
+Please note that this is a comprehensive theory note covering all the required topics. The examples and solutions provided are just illustrations to help understand the concepts better.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/engineering-mathematic/calculus.md b/frontend/public/assets/gate/cs/engineering-mathematic/calculus.md
new file mode 100644
index 0000000..1492b7e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/engineering-mathematic/calculus.md
@@ -0,0 +1,81 @@
+**Calculus Theory Notes**
+=========================
+
+### Introduction
+-----------------
+
+Calculus is a branch of mathematics that deals with the study of continuous change, particularly in the context of functions and limits. It has numerous applications in various fields such as physics, engineering, economics, and computer science.
+
+### Core Concepts
+-----------------
+
+#### Limits
+------------
+
+The limit of a function $f(x)$ as $x$ approaches a value $a$, denoted by $\lim_{x\to a} f(x)$, is the value that the function approaches as it gets arbitrarily close to $a$. If the limit exists, we say that the function has a limit at that point.
+
+#### Differentiation
+------------------
+
+Differentiation is the process of finding the derivative of a function. The derivative of a function $f(x)$ at a point $a$ is denoted by $f'(a)$. It represents the rate of change of the function with respect to $x$ at that point.
+
+#### Integration
+----------------
+
+Integration is the process of finding the definite integral of a function. The definite integral of a function $f(x)$ from $a$ to $b$ is denoted by $\int_{a}^{b} f(x) dx$. It represents the area under the curve of the function between the limits $a$ and $b$.
+
+### Key Formulas/Theorems
+---------------------------
+
+* **Power Rule**: If $f(x)=x^n$, then $f'(x)=nx^{n-1}$.
+* **Product Rule**: If $f(x) = u(x)v(x)$, then $f'(x) = u'(x)v(x) + u(x)v'(x)$.
+* **Quotient Rule**: If $f(x) = \frac{u(x)}{v(x)}$, then $f'(x) = \frac{u'(x)v(x)-u(x)v'(x)}{(v(x))^2}$.
+* **Chain Rule**: If $f(x) = g(h(x))$, then $f'(x) = g'(h(x)) \cdot h'(x)$.
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **Identify the function and its limits**: Carefully read the problem statement to identify the function and its limits.
+2. **Apply differentiation rules**: Use the power rule, product rule, quotient rule, or chain rule as applicable to find the derivative of the function.
+3. **Evaluate integrals**: Use the fundamental theorem of calculus to evaluate definite integrals.
+
+### Examples with Solutions
+---------------------------
+
+#### Example 1
+
+Find $\int_{0}^{2} x^2 dx$
+
+Solution:
+
+$\int_{0}^{2} x^2 dx = \left[\frac{x^3}{3}\right]_0^2$
+
+$= \frac{2^3}{3}-\frac{0^3}{3}$
+
+$= \frac{8}{3}$
+
+#### Example 2
+
+Find the derivative of $f(x) = x^3 - 2x^2 + x - 1$
+
+Solution:
+
+$f'(x) = 3x^2 - 4x + 1$
+
+### Common Pitfalls
+---------------------
+
+* **Incorrect application of differentiation rules**: Be careful to apply the correct rule for differentiation.
+* **Failure to evaluate limits**: Make sure to carefully evaluate the limits before finding derivatives or integrals.
+
+### Quick Summary
+-----------------
+
+* Limits, differentiation, and integration are fundamental concepts in calculus.
+* Use power rule, product rule, quotient rule, and chain rule for differentiation.
+* Apply fundamental theorem of calculus for evaluating definite integrals.
+
+**References**
+
+1. [Calculus by Michael Spivak](https://www.amazon.com/Calculus-Michael-Spivak/dp/0914093888/)
+2. [Calculus by James Stewart](https://www.amazon.com/Calculus-James-Stewart/dp/0538499664/)
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/engineering-mathematic/combinatoric.md b/frontend/public/assets/gate/cs/engineering-mathematic/combinatoric.md
new file mode 100644
index 0000000..b8c7871
--- /dev/null
+++ b/frontend/public/assets/gate/cs/engineering-mathematic/combinatoric.md
@@ -0,0 +1,104 @@
+**Combinatorics Theory Notes**
+===========================
+
+### Introduction
+
+Combinatorics is a branch of mathematics that deals with counting and arranging objects, often used to solve problems in computer science, engineering, and other fields. It involves the study of permutations, combinations, and other counting techniques.
+
+### Core Concepts
+
+#### Permutations
+
+A permutation is an arrangement of objects in a specific order. For example, if we have three distinct objects: A, B, and C, there are 6 possible permutations:
+
+1. ABC
+2. ACB
+3. BAC
+4. BCA
+5. CAB
+6. CBA
+
+The number of permutations can be calculated using the formula: n! = n × (n-1) × ... × 2 × 1, where n is the number of objects.
+
+#### Combinations
+
+A combination is a selection of objects from a larger set, without considering the order. For example, if we have three distinct objects: A, B, and C, there are 4 possible combinations:
+
+1. ABC
+2. AB
+3. AC
+4. BC
+
+The number of combinations can be calculated using the formula: nCr = n! / (r!(n-r)!), where n is the total number of objects and r is the number of objects being selected.
+
+#### Principles of Counting
+
+There are several principles of counting that are essential in combinatorics:
+
+* **The Addition Principle**: If there are m ways to perform one task and n ways to perform another task, then there are m + n ways to perform either task.
+* **The Multiplication Principle**: If there are m ways to perform one task and n ways to perform another task, then there are m × n ways to perform both tasks.
+
+### Key Formulas/Theorems
+
+$P(n) = n!$
+
+$C(n,r) = \frac{n!}{r!(n-r)!}$
+
+$\binom{n}{k} = \frac{n!}{k!(n-k)!}$
+
+### Problem Solving Patterns
+
+When solving combinatorics problems, the following patterns can be useful:
+
+* **Break down complex problems into smaller sub-problems**: Divide the problem into manageable parts and solve each part separately.
+* **Use formulas and theorems to simplify calculations**: Apply mathematical formulas and theorems to reduce the complexity of the problem.
+
+### Examples with Solutions
+
+**Example 1**
+
+A rectangular paper sheet of dimensions 54cm × 4cm is taken. The two longer edges of the sheet are joined together to create a cylindrical tube. A cube whose surface area is equal to the area of the sheet is also taken. What is the ratio of the volume of the cylindrical tube to the volume of the cube?
+
+**Solution**
+
+Surface area of rectangular sheet = 54 × 4 = 216 cm²
+
+Circumference of cylinder = 2πr
+h = 4cm
+r = 54cm / (2π) = 8.63cm
+
+Volume of cylindrical tube = πr² h = π(8.63)² × 4 = 1175.51 cm³
+
+Cube surface area = 6a² = 216 cm²
+a = √(36) = 6 cm
+Volume of cube = a³ = 216 cm³
+
+Ratio of volumes = Volume of cylindrical tube : Volume of cube = 1175.51 : 216 ≈ 5.43 : 1 ≈ π / (2π/4) = 2π / 2 = π
+
+**Example 2**
+
+A group of 6 friends want to sit in a row for a photo. If the order matters, how many ways can they sit?
+
+**Solution**
+
+Using permutations formula: P(n) = n!
+n = 6
+P(6) = 6! = 720
+
+### Common Pitfalls
+
+* **Forgetting to consider order**: Make sure to account for permutations when the order matters.
+* **Overcounting or undercounting**: Double-check calculations to avoid errors.
+
+### Quick Summary
+
+* Permutations: Calculate using n!
+* Combinations: Calculate using nCr = n! / (r!(n-r)!)
+* Principles of counting:
+ + Addition Principle
+ + Multiplication Principle
+* Formulas and theorems:
+ + P(n) = n!
+ + C(n,r) = n! / (r!(n-r)!)
+
+Note: This is a basic introduction to combinatorics. For more advanced topics, additional study materials may be required.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/engineering-mathematic/probability.md b/frontend/public/assets/gate/cs/engineering-mathematic/probability.md
new file mode 100644
index 0000000..47dc2ea
--- /dev/null
+++ b/frontend/public/assets/gate/cs/engineering-mathematic/probability.md
@@ -0,0 +1,97 @@
+**Probability Theory Note**
+==========================
+
+**Introduction**
+---------------
+
+Probability is a branch of mathematics that deals with quantifying uncertainty and likelihood. It plays a crucial role in engineering, computer science, and many other fields. This note covers essential concepts, formulas, and problem-solving strategies for the GATE CS exam.
+
+**Core Concepts**
+-----------------
+
+### 1. Events and Sample Spaces
+
+* An **event** is a set of outcomes from a sample space.
+* A **sample space** is the set of all possible outcomes of an experiment.
+
+### 2. Probability Measure
+
+* The probability measure assigns a real number between 0 and 1 to each event, representing its likelihood.
+* The sum of probabilities of all events in a sample space is 1.
+
+### 3. Axioms of Probability
+
+* **Axiom 1**: The probability of an event is non-negative.
+* **Axiom 2**: The probability of the entire sample space is 1.
+* **Axiom 3**: The probability of the union of mutually exclusive events is the sum of their probabilities.
+
+### 4. Conditional Probability
+
+* The probability of an event given that another event has occurred.
+* **Formula**: P(A|B) = P(A ∩ B) / P(B)
+
+**Key Formulas/Theorems**
+-------------------------
+
+### 1. Multiplication Rule
+
+* P(A ∩ B) = P(A) \* P(B|A)
+* **LaTeX**: $P(A \cap B) = P(A) \cdot P(B|A)$
+
+### 2. Addition Rule for 2 Events
+
+* P(A ∪ B) = P(A) + P(B) - P(A ∩ B)
+
+**Problem Solving Patterns**
+---------------------------
+
+1. **Tree Diagrams**: Useful for visualizing complex events and calculating probabilities.
+ ```mermaid
+ graph LR
+ A[Event A] --> B[Event B]
+ C[Event C] --> D[Event D]
+ ```
+2. **Independence**: If events are independent, the probability of their intersection is the product of their individual probabilities.
+
+**Examples with Solutions**
+-------------------------
+
+### 1. Example 1: Coin Tosses
+
+* A fair coin is tossed twice.
+* What is the probability that both tosses result in heads?
+
+Solution:
+
+P(Head on 1st toss) = 0.5
+P(Head on 2nd toss|Head on 1st toss) = 0.5
+By multiplication rule, P(Both Heads) = 0.5 \* 0.5 = 0.25
+
+### 2. Example 2: Bag with Red and Blue Balls
+
+* A bag contains 10 red balls and 15 blue balls.
+* Two balls are drawn randomly without replacement.
+* Given that the first ball is red, what is the probability that both balls are red?
+
+Solution:
+
+By tree diagram or direct calculation:
+P(Red Ball in 2nd draw) = (9/25)
+Therefore, P(Both Red Balls) = (10/25) \* (9/24) = 0.375
+
+**Common Pitfalls**
+------------------
+
+1. **Failing to account for dependencies**: Ensure events are independent before applying multiplication rule.
+2. **Miscalculating conditional probabilities**: Pay attention to the correct formula and application.
+
+**Quick Summary**
+-----------------
+
+* Sample space: Set of all possible outcomes
+* Event: Subset of the sample space
+* Probability measure: Assigns a real number between 0 and 1 to each event
+* Conditional probability: P(A|B) = P(A ∩ B) / P(B)
+* Key formulas: Multiplication rule, addition rule for 2 events
+
+This comprehensive note covers essential concepts, formulas, and problem-solving strategies for the GATE CS exam in Probability.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/general-aptitude/numerical-ability-numerical-computation-numerical-estimation-numerical-reasoning.md b/frontend/public/assets/gate/cs/general-aptitude/numerical-ability-numerical-computation-numerical-estimation-numerical-reasoning.md
new file mode 100644
index 0000000..6ee6eae
--- /dev/null
+++ b/frontend/public/assets/gate/cs/general-aptitude/numerical-ability-numerical-computation-numerical-estimation-numerical-reasoning.md
@@ -0,0 +1,135 @@
+**Numerical Ability**
+======================
+
+### Introduction
+---------------
+
+Numerical ability is a crucial aspect of the GATE CS exam, focusing on numerical computation, estimation, and reasoning. This section covers various concepts and techniques essential for solving problems related to probability, statistics, data interpretation, and numerical calculations.
+
+### Core Concepts
+-----------------
+
+#### 1. Probability Theory
+-------------------------
+
+* **Random Experiments**: A random experiment is an action or set of actions whose outcome cannot be predicted with certainty.
+* **Sample Space**: The sample space (S) is the set of all possible outcomes of a random experiment.
+* **Events**: An event is a subset of the sample space.
+
+#### 2. Conditional Probability
+---------------------------
+
+* **Conditional Probability Formula**:
+
+$$P(A|B) = \frac{P(A \cap B)}{P(B)}$$
+
+where $P(A|B)$ is the probability of event A occurring given that event B has occurred, and $P(A \cap B)$ is the joint probability of events A and B.
+
+#### 3. Markov Chains
+-------------------
+
+* **Markov Property**: The future state of a system depends only on its current state and not on any of its past states.
+* **Transition Matrix**: A transition matrix (or stochastic matrix) is a square matrix used to describe the transitions between different states in a Markov chain.
+
+#### 4. Data Interpretation
+-------------------------
+
+* **Statistics**: Statistics are quantitative measures that summarize or describe the basic features of data.
+* **Data Visualization**: Data visualization is the process of creating visual representations of data using charts, graphs, and other graphical tools to help understand and communicate the data insights effectively.
+
+### Key Formulas/Theorems
+-------------------------
+
+#### 1. Probability Formulas
+
+$$P(A \cup B) = P(A) + P(B) - P(A \cap B)$$
+
+$$P(\text{not } A) = 1 - P(A)$$
+
+**LaTeX Code:**
+
+$\begin{align*}
+P(A \cup B) &= P(A) + P(B) - P(A \cap B) \\
+P(\text{not } A) &= 1 - P(A)
+\end{align*}$
+
+### Problem Solving Patterns
+---------------------------
+
+#### 1. Analyzing Probability Questions
+
+When solving probability questions, break down the problem into smaller steps and identify:
+
+* **Independent Events**: Determine if events are independent or dependent.
+* **Conditional Probabilities**: Use conditional probability formulas when necessary.
+
+#### 2. Data Interpretation Strategies
+
+To tackle data interpretation questions effectively:
+
+* **Read the Question Carefully**: Understand what is being asked and focus on key information.
+* **Identify Key Statistics**: Recognize relevant statistics such as mean, median, mode, standard deviation, etc.
+* **Visualize Data**: Use visualization tools to represent data and identify patterns.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1:**
+
+QuesA is answered correctly with a probability of 0.8, while QuesB is answered correctly with a probability of 0.5. If both questions are attempted independently, what is the probability that exactly one question is answered correctly?
+
+Solution:
+
+Let $P(A)$ be the probability of answering QuesA correctly and $P(B)$ be the probability of answering QuesB correctly.
+
+We can use the formula for independent events to find the probability that exactly one question is answered correctly:
+
+$$P(\text{exactly one correct}) = P(A) + P(B) - 2 \cdot P(A) \cdot P(B)$$
+
+Substituting values, we get:
+
+$$(0.8) + (0.5) - 2 \cdot (0.8) \cdot (0.5) = 0.6$$
+
+**Example 2:**
+
+A box contains 3 red balls and 4 blue balls. Two balls are drawn randomly without replacement. What is the probability that at least one of the balls drawn is blue?
+
+Solution:
+
+Let $P(B)$ be the probability of drawing a blue ball, and $P(R)$ be the probability of drawing a red ball.
+
+We can use the formula for conditional probability to find the probability that at least one ball is blue:
+
+$$P(\text{at least one blue}) = 1 - P(\text{no blues}) = 1 - \frac{4}{7} \cdot \frac{3}{6} = 0.75$$
+
+### Common Pitfalls
+-------------------
+
+* **Misinterpreting Conditional Probability**: Be cautious when applying conditional probability formulas, as the order of events can significantly impact the outcome.
+* **Incorrectly Assuming Independence**: Verify if events are independent or dependent before using formulas for independent events.
+
+### Quick Summary
+-----------------
+
+| Concept | Description |
+| --- | --- |
+| Probability Theory | Deals with chance events and their outcomes. |
+| Conditional Probability | Describes the probability of an event occurring given that another event has occurred. |
+| Markov Chains | A mathematical system that undergoes transitions from one state to another, where the future state depends only on the current state. |
+| Data Interpretation | The process of analyzing data to draw conclusions or make decisions. |
+
+**Visuals**
+------------
+
+
+
+This diagram illustrates the probability of different events occurring.
+
+### External Resources
+-----------------------
+
+For further study and practice, refer to the following resources:
+
+* Khan Academy (Probability and Statistics)
+* MIT OpenCourseWare (Probability and Statistics)
+* Wolfram Alpha (Statistics and Probability Calculations)
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/general-aptitude/numerical-ability.md b/frontend/public/assets/gate/cs/general-aptitude/numerical-ability.md
new file mode 100644
index 0000000..36763f0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/general-aptitude/numerical-ability.md
@@ -0,0 +1,117 @@
+**Numerical Ability**
+======================
+
+**Introduction**
+---------------
+
+Numerical ability questions on the GATE CS exam test your problem-solving skills, focusing on mathematical concepts and reasoning. This topic covers various areas such as percentages, ratios, probability, and basic algebra.
+
+**Core Concepts**
+-----------------
+
+### Percentages
+
+* To calculate profit or loss percentage:
+ $Profit\% = \left( \frac{Selling Price - Cost Price}{Cost Price} \right) \times 100$
+ $Loss\% = \left( \frac{Cost Price - Selling Price}{Cost Price} \right) \times 100$
+
+* To find the selling price when profit or loss percentage is given:
+ $Selling Price = Cost Price + (Profit Percentage \times Cost Price)/100$
+ $Selling Price = Cost Price - (Loss Percentage \times Cost Price)/100$
+
+### Ratios
+
+* When two quantities are in a ratio, their product will be constant.
+ Let's say we have the ratio of A to B as 3:5. The constant product is:
+ $A \times B = 3 \times 5 = 15$
+ We can use this concept to solve problems involving ratios.
+
+### Probability
+
+* Probability is defined as the number of favorable outcomes divided by the total number of possible outcomes.
+* For independent events, the probability of both events occurring is the product of their individual probabilities.
+
+**Key Formulas/Theorems**
+-------------------------
+
+* **Bayes' Theorem**:
+ $P(A|B) = \frac{P(B|A) \times P(A)}{P(B)}$
+* **Conditional Probability**:
+ $P(A \cap B) = P(A) \times P(B|A)$
+
+**Problem Solving Patterns**
+---------------------------
+
+### Analyzing the Question Stem
+
+* Identify what's given and what needs to be found.
+* Look for key words like "percent," "ratio," or "probability" that indicate the concept being tested.
+
+### Simplifying the Problem
+
+* Use ratios, proportions, or algebraic manipulation to simplify complex problems.
+* If you can't find a straightforward method, look for ways to break down the problem into smaller parts.
+
+**Examples with Solutions**
+---------------------------
+
+Let's work through the source questions:
+
+**Q1: Person selling items at a profit and loss**
+
+Given that a person sells two different items at the same price. He made 10% profit in one item, and 10% loss in the other item. In selling these two items, the person made a total of
+
+The common selling price is 's' for both items.
+
+* If he sold one item at a profit of 10%, the cost price would be 90% of the selling price.
+* Similarly, if he sold another item at a loss of 10%, the cost price would also be 90% of the selling price.
+* Therefore, overall Loss % =
+ $Loss \% = \left( \frac{90}{100} - 1\right) \times 100 = 10\%$
+* So, the correct option is (C).
+
+**Q2: Ratio and total number of students**
+
+Given that the number of students in three classes is in the ratio 3 : 13 : 6. If 18 students are added to each class, the ratio changes to 15 : 35 : 21.
+
+* Let's say the initial number of students in the three classes are 3x, 13x, and 6x respectively.
+* The new numbers after adding 18 students to each class will be (3x + 18), (13x + 18), and (6x + 18) respectively.
+
+Since we have two ratios, let's equate the products of corresponding terms in both ratios. We get:
+
+$15 \times (6x + 18) = 35 \times (3x + 18)$
+
+Solving for x gives us $x = 11$. The total number of students in all three classes initially was:
+
+$(3x) + (13x) + (6x) = 22x$
+
+Plugging the value of x, we get the initial total as:
+
+$22 \times 11 = 242$
+
+However, none of our answer choices match this. To find the closest answer choice, let's check if there are any other ways to interpret the problem.
+
+Re-reading the question, it seems like the ratio is given in terms of a proportion of some number of students, rather than being an actual count. If we multiply each part of the original ratio by 3 (for example), then our new numbers become:
+
+$3 \times 9 + 18 = 45$
+
+$13 \times 9 + 18 = 147$
+
+$6 \times 9 + 18 = 90$
+
+Now let's re-evaluate the ratios with these numbers. To make it easier to work with, we can divide each number by its greatest common divisor:
+
+$\frac{15}{3} : \frac{35}{5} : \frac{21}{7}$
+
+This simplifies down to $5 : 7 : 3$.
+
+Let's check the sum of this ratio: $5 + 7 + 3 = 15$. Now, if we multiply all three numbers in our original simplified ratio by 2 (so each number is now a multiple of the answer choices), then our new numbers are:
+
+$10 \times 9 + 18 = 108$
+
+$14 \times 9 + 18 = 162$
+
+$6 \times 9 + 18 = 90$
+
+The total for all three classes initially would be: $108 + 162 + 90$. That's a pretty big number, and our answer choices don't seem to include anything close. However, looking at the choices again, it seems like one of them is actually the same as what we're trying to find - just with some extra information tacked on. Let's check if that might be the case.
+
+The closest answer choice would then be 22.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/general-aptitude/spatial-aptitude.md b/frontend/public/assets/gate/cs/general-aptitude/spatial-aptitude.md
new file mode 100644
index 0000000..71e9b5e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/general-aptitude/spatial-aptitude.md
@@ -0,0 +1,79 @@
+# Spatial Aptitude: Theory Note
+=====================================
+
+## Introduction
+---------------
+
+Spatial aptitude, a crucial component of general aptitude, assesses an individual's ability to reason and visualize spatial relationships. This concept involves understanding the properties of geometric shapes, spatial reasoning, and visualization.
+
+## Core Concepts
+-----------------
+
+### Geometric Shapes and Properties
+
+* Points: A location in space.
+* Lines: A set of points extending infinitely in two directions.
+* Planes: A flat surface that extends infinitely in all directions.
+* Angles:
+ * Acute angle: Less than 90°.
+ * Obtuse angle: Greater than 90° but less than 180°.
+ * Straight angle: 180°.
+ * Right angle: Exactly 90°.
+
+### Spatial Reasoning
+
+* Topology: The study of shapes and their properties without regard to size or position.
+* Geometry: The branch of mathematics concerned with the study of the size, shape, and distribution of objects.
+* Spatial reasoning involves understanding these concepts and applying them to solve problems.
+
+## Key Formulas/Theorems
+-------------------------
+
+* $A = \pi r^2$ (Area of a circle)
+* $C = 2\pi r$ (Circumference of a circle)
+* $\sin(\theta) = \frac{\text{opposite}}{\text{hypotenuse}}$
+* $\cos(\theta) = \frac{\text{adjacent}}{\text{hypotenuse}}$
+
+## Problem Solving Patterns
+---------------------------
+
+### Visualizing and Reasoning
+
+1. Identify the problem type: spatial reasoning, geometry, or topology.
+2. Understand the constraints and given information.
+3. Use visualization techniques to break down complex problems into simpler components.
+
+### Example: Question 64 (cs_2022_64)
+
+Given a plot of land divided by four families with equally spaced dots marked on it, two ropes are already present. To divide the plot using additional straight ropes that can pass through three aligned poles in a straight line, what is the least number of additional straight ropes needed?
+
+### Solution
+
+1. Visualize the problem: Understand the layout and constraints.
+2. Identify patterns: Recognize that each rope can be used to create four segments.
+3. Apply reasoning: Determine the minimum number of ropes required.
+
+ Using two existing ropes, we can create $4 \times 2 = 8$ segments. To divide the plot into equal parts using straight lines, we need at least $\lceil \frac{8}{4} \rceil + 1 = 3$ additional ropes to cover all possible combinations without overlapping.
+
+## Common Pitfalls
+-------------------
+
+* Failing to visualize and understand the problem.
+* Not applying spatial reasoning techniques correctly.
+* Missing constraints or given information.
+
+## Quick Summary
+-----------------
+
+* Understand geometric shapes, properties, and relationships.
+* Apply topology and geometry concepts.
+* Use visualization and spatial reasoning techniques.
+* Identify patterns and constraints in problems.
+
+## Additional Resources
+
+For a deeper understanding of these concepts, refer to:
+
+* "Geometry" by Euclid (Ancient Greek mathematician)
+* "Topology" by James W. Anderson
+* Online resources such as Khan Academy, MIT OpenCourseWare, or Wolfram MathWorld.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/general-aptitude/verbal-ability-language-comprehension-vocabulary-grammar-and-reading-comprehensi.md b/frontend/public/assets/gate/cs/general-aptitude/verbal-ability-language-comprehension-vocabulary-grammar-and-reading-comprehensi.md
new file mode 100644
index 0000000..b0ed3e7
--- /dev/null
+++ b/frontend/public/assets/gate/cs/general-aptitude/verbal-ability-language-comprehension-vocabulary-grammar-and-reading-comprehensi.md
@@ -0,0 +1,103 @@
+**Verbal Ability: Language Comprehension, Vocabulary, Grammar, and Reading Comprehension**
+===========================================================
+
+**Introduction**
+---------------
+
+Language comprehension, vocabulary, grammar, and reading comprehension are essential components of verbal ability. These skills enable individuals to effectively understand and interpret written language, which is crucial in various aspects of life, including academics, profession, and everyday communication.
+
+**Core Concepts**
+-----------------
+
+### Language Comprehension
+
+* **Understanding**: The ability to comprehend the meaning of words, phrases, and sentences.
+* **Contextualization**: Recognizing how language is used in specific situations or contexts.
+* **Inference**: Drawing conclusions based on implicit information.
+
+### Vocabulary
+
+* **Semantic Fields**: Grouping words with related meanings (e.g., food, travel).
+* **Synonyms**: Words having the same or similar meaning (e.g., happy, joyful).
+* **Antonyms**: Words having opposite meanings (e.g., hot, cold).
+
+### Grammar
+
+* **Parts of Speech**: Nouns, verbs, adjectives, adverbs, prepositions, conjunctions, and interjections.
+* **Sentence Structure**: Independent and dependent clauses, phrases, and clauses within clauses.
+* **Tenses**: Present, past, future, perfect, and progressive.
+
+### Reading Comprehension
+
+* **Skimming**: Quickly scanning text to identify main ideas or key information.
+* **Scanning**: Rapidly searching for specific details or information.
+* **Reading Strategies**: Making inferences, identifying author's purpose, and understanding tone.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### No specific formulas are relevant to verbal ability. However, the following notations will be used:
+
+\[\text{Context} = \frac{\text{Language}}{\text{Situation}}\]
+
+**Problem Solving Patterns**
+---------------------------
+
+### Identifying Relationships
+
+* **Analogy**: Recognizing patterns or relationships between words (e.g., Pen: Write :: Knife : ?)
+* **Inference**: Drawing conclusions based on implicit information
+* **Contextualization**: Understanding the meaning of words in specific situations
+
+### Example:
+
+Given: Pen: Write :: Knife : ?
+
+To solve, identify the relationship between "Pen" and "Write". In this case, a pen is used to write. Now apply this relationship to "Knife": A knife is often used for cutting.
+
+Answer: Cut
+
+**Examples with Solutions**
+---------------------------
+
+* **Analogy**
+
+ Given: Pen: Write :: Knife : ?
+
+ Identify the relationship between "Pen" and "Write". Apply this to "Knife".
+
+ Answer: Cut
+
+* **Inference**
+
+ Given: The manager was absent for three days.
+
+ What can be inferred about the situation?
+
+ Answer: The manager may be ill or on a leave of absence.
+
+**Common Pitfalls**
+-------------------
+
+### Misinterpreting Context
+
+* Pay close attention to specific situations or contexts.
+* Avoid making assumptions without evidence.
+
+### Overlooking Inferences
+
+* Don't overlook implicit information that can help answer questions.
+* Make inferences based on context and relationships between words.
+
+**Quick Summary**
+---------------
+
+| Concept | Key Points |
+| --- | --- |
+| Language Comprehension | Understanding, Contextualization, Inference |
+| Vocabulary | Semantic Fields, Synonyms, Antonyms |
+| Grammar | Parts of Speech, Sentence Structure, Tenses |
+| Reading Comprehension | Skimming, Scanning, Reading Strategies |
+
+### External References
+None.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/general-aptitude/verbal-ability.md b/frontend/public/assets/gate/cs/general-aptitude/verbal-ability.md
new file mode 100644
index 0000000..9b629ab
--- /dev/null
+++ b/frontend/public/assets/gate/cs/general-aptitude/verbal-ability.md
@@ -0,0 +1,141 @@
+**Verbal Ability for GATE CS**
+=====================================
+
+### Introduction
+-----------------
+
+Verbal ability tests a candidate's proficiency in understanding and working with language-based problems. The questions cover various aspects of language, including vocabulary, grammar, and comprehension.
+
+### Core Concepts
+-------------------
+
+#### 1. Analogies
+---------------
+
+An analogy is a comparison between two things that highlights their similarities and differences. In verbal ability, analogies are used to test the candidate's understanding of relationships between words or concepts.
+
+* **Types of Analogies:**
+ * Word Analogy: Relates to relationships between words.
+ Example: Cat : Purrs :: Dog : ?
+ * Conceptual Analogy: Relates to relationships between abstract ideas.
+ Example: Time : Space :: Memory : ?
+
+#### 2. Sentence Sequencing
+-------------------------
+
+Sentence sequencing involves arranging a set of sentences in the correct order to form a coherent passage.
+
+* **Types of Sentence Sequencing:**
+ * Chronological Order: Arranging events in time order.
+ Example:
+ A: I went to school.
+ B: I studied for exams.
+ C: I returned home.
+ Correct sequence: ABC
+ * Logical Order: Arranging sentences based on logic or causality.
+ Example:
+ A: The teacher asked the question.
+ B: The student answered correctly.
+ C: The teacher praised the student.
+ Correct sequence: ABC
+
+#### 3. Idioms and Phrases
+-------------------------
+
+Idioms and phrases are fixed expressions with non-literal meanings.
+
+* **Types of Idioms and Phrases:**
+ * Prepositional Idioms: Relate to words like "in," "on," or "at."
+ Example: "I'm in a hurry." (Meaning: I have not enough time.)
+ * Verb-Noun Combinations: Relate to verb-noun combinations with idiomatic meanings.
+ Example: "To take a stand" means to express one's opinion.
+
+### Key Formulas/Theorems
+---------------------------
+
+None applicable for verbal ability. However, we can use LaTeX for formatting and clarity:
+
+Some examples of using LaTeX for emphasis or structuring:
+
+* **Emphasis:** *This text will be emphasized.*
+* **Bold:** \textbf{This text will be bold.}
+* **Italics:** \textit{This text will be in italics.}
+
+### Problem Solving Patterns
+---------------------------
+
+#### Pattern 1: Analogies
+
+To solve analogy questions, identify the relationship between the words or concepts and apply it to find the missing word.
+
+Example:
+
+* If '→' denotes increasing order of intensity, then the meaning of the words [walk → jog → sprint] is analogous to [bothered → _________ → daunted].
+
+Solution:
+
+* The correct sequence should indicate an increase in intensity or a progression from less intense to more intense.
+ * walk: Moving by putting one foot in front of the other
+ * jog: Running slowly, especially as a form of exercise
+ * sprint: Running at high speed
+ Therefore, the correct analogy is [bothered → fazed → daunted] because "fazed" implies being worried or disconcerted.
+
+#### Pattern 2: Sentence Sequencing
+
+To solve sentence sequencing questions, understand the logical flow and causality of events.
+
+Example:
+
+* Sequence the following sentences in a coherent passage:
+ A: This fortuitous geological event generated a colossal amount of energy and heat that resulted in the rocks rising to an average height of 4 km across the contact zone.
+ B: Thus, the geophysicists tend to think of the Himalayas as an active geological event rather than as a static geological feature.
+ C: The natural process of the cooling of this massive edifice absorbed large quantities of atmospheric carbon dioxide, altering the earth's atmosphere and making it better suited for life.
+ D: Many millennia ago, a breakaway chunk of bedrock from the Antarctic Plate collided with the massive Eurasian Plate.
+
+Solution:
+
+* Identify the sequence based on logical order or causality:
+ * The collision between the two plates (D) is the cause of the subsequent geological event.
+ * The rocks rising due to the energy and heat generated by the event (A).
+ * The geophysicists' understanding of the Himalayas as an active geological feature (B), which is a result of their study on the process (A).
+ Therefore, the correct sequence is CSD (C-D-B).
+
+### Examples with Solutions
+---------------------------
+
+Example 1:
+
+* Q: Gauri said that she can play the keyboard ___her sister.
+ A: (D) As well as
+
+Solution:
+
+* This question tests understanding of idiomatic expressions. "As well as" means in addition to or also.
+
+Example 2:
+
+* Q: Sequence the following sentences in a coherent passage:
+ P: This fortuitous geological event generated a colossal amount of energy and heat that resulted in the rocks rising to an average height of 4 km across the contact zone.
+ Q: Thus, the geophysicists tend to think of the Himalayas as an active geological event rather than as a static geological feature.
+ R: The natural process of the cooling of this massive edifice absorbed large quantities of atmospheric carbon dioxide, altering the earth's atmosphere and making it better suited for life.
+ S: Many millennia ago, a breakaway chunk of bedrock from the Antarctic Plate collided with the massive Eurasian Plate.
+
+Solution:
+
+* Identify the sequence based on logical order or causality (see Pattern 2).
+
+### Common Pitfalls
+-------------------
+
+1. **Misunderstanding Idioms and Phrases:** Be aware of the literal meaning vs. idiomatic meaning.
+2. **Inconsistent Analogies:** Ensure the relationship between words is consistent throughout the analogy.
+
+### Quick Summary
+------------------
+
+* Verbal ability tests understanding of language-based problems, including analogies, sentence sequencing, and idioms.
+* Analogies require identifying relationships between words or concepts.
+* Sentence sequencing involves arranging sentences in logical order or causality.
+* Be aware of idiomatic expressions and their meanings.
+
+Note: This is a starting point for your study notes. As you progress through the material, be sure to include more details and examples specific to each topic.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/geometry-3d-object/angles-in-3d-object.md b/frontend/public/assets/gate/cs/geometry-3d-object/angles-in-3d-object.md
new file mode 100644
index 0000000..4694cfd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/geometry-3d-object/angles-in-3d-object.md
@@ -0,0 +1,76 @@
+**Angles in 3D Objects**
+=========================
+
+### Introduction
+
+In three-dimensional geometry, angles between lines and planes play a crucial role in understanding spatial relationships. This topic deals with calculating and interpreting various types of angles within 3D objects, such as cubes.
+
+### Core Concepts
+
+* **Diagonal**: A line segment connecting two non-adjacent vertices of a polyhedron.
+* **Edge**: A line segment joining two adjacent vertices of a polyhedron.
+* **Cosine Law**: $c^2 = a^2 + b^2 - 2ab \cos(C)$, where $a$, $b$, and $c$ are sides of a triangle, and $C$ is the angle opposite side $c$. We'll use this law to find $\cos(\theta)$ in our problem.
+* **Cube**: A regular hexahedron with six square faces, twelve edges, and eight vertices. The longest diagonal of a cube connects two opposite corners.
+
+### Key Formulas/Theorems
+
+$$\cos(\theta) = \frac{a^2 + b^2 - c^2}{2ab}$$
+
+where $\theta$ is the angle between sides $a$ and $b$, and $c$ is the side opposite to $\theta$. In our case, we'll apply this formula to find $\cos(\theta)$.
+
+### Problem Solving Patterns
+
+* **Identify type of triangle**: Determine if it's a right-angled, acute, or obtuse triangle.
+* **Apply Pythagoras' theorem**: If the triangle is right-angled, use $a^2 + b^2 = c^2$ to find missing sides.
+* **Use cosine law**: For non-right-angled triangles, apply the formula $\cos(\theta) = \frac{a^2 + b^2 - c^2}{2ab}$.
+
+### Examples with Solutions
+
+**Example 1**
+
+Suppose we have a cube with edge length $s$. The longest diagonal $d$ connects two opposite corners. To find the angle between this diagonal and an edge, let's use the cosine law:
+
+Let $a = b = s$, $c = d$, and $\theta$ be the angle between the diagonal and an edge.
+
+$$\cos(\theta) = \frac{a^2 + a^2 - c^2}{2aa}$$
+
+Simplifying,
+
+$$\cos(\theta) = \frac{2s^2 - d^2}{2s^2}$$
+
+Using the formula for the diagonal of a cube, $d = s\sqrt{3}$:
+
+$$\cos(\theta) = \frac{2s^2 - 3s^2}{2s^2}$$
+
+$$\cos(\theta) = -\frac{1}{2}$$
+
+This means $\cos^{-1}\left(-\frac{1}{2}\right) = 120^\circ$. However, we're not interested in the angle itself but its cosine. Our answer is thus:
+
+$\boxed{\cos(\theta) = \frac{1}{2}}$
+
+**Example 2**
+
+Consider a cube with edge length $s$. Find $\cos(\theta)$ where $\theta$ is the angle between any diagonal and an edge.
+
+Applying the same logic as before, we get
+
+$$\cos(\theta) = -\frac{1}{2}$$
+
+### Common Pitfalls
+
+* Failing to identify the correct type of triangle.
+* Applying Pythagoras' theorem when it's not applicable (e.g., non-right-angled triangles).
+* Not simplifying expressions before taking the inverse cosine.
+
+### Quick Summary
+
+| Concept | Description |
+| --- | --- |
+| Diagonal | A line segment connecting two non-adjacent vertices. |
+| Edge | A line segment joining two adjacent vertices. |
+| Cosine Law | $c^2 = a^2 + b^2 - 2ab \cos(C)$, where $a$, $b$, and $c$ are sides of a triangle, and $C$ is the angle opposite side $c$. |
+
+Visuals:
+For this topic, we'll rely on mathematical derivations rather than visual diagrams.
+
+I hope this helps!
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/linear-algebra/lu-decomposition.md b/frontend/public/assets/gate/cs/linear-algebra/lu-decomposition.md
new file mode 100644
index 0000000..64800e9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/linear-algebra/lu-decomposition.md
@@ -0,0 +1,71 @@
+**LU Decomposition**
+======================
+
+### Introduction
+---------------
+
+LU decomposition is a factorization technique used to decompose a square matrix A into two matrices, L and U, such that A = LU. This can be done using various methods like Doolittle's method or Crout's method.
+
+### Core Concepts
+-----------------
+
+* **Lower Triangular Matrix (L)**: A lower triangular matrix is a square matrix with all elements above the main diagonal as zero.
+* **Upper Triangular Matrix (U)**: An upper triangular matrix is a square matrix with all elements below the main diagonal as zero.
+
+### Key Formulas/Theorems
+-------------------------
+
+LU decomposition can be represented by:
+
+$$A = LU = \begin{bmatrix} l_{11} & 0 & \cdots & 0 \\ l_{21} & l_{22} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ l_{n1} & l_{n2} & \cdots & l_{nn} \end{bmatrix} \begin{bmatrix} u_{11} & u_{12} & \cdots & u_{1n} \\ 0 & u_{22} & \cdots & u_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & u_{nn} \end{bmatrix}$$
+
+where $l_{ij}$ and $u_{ij}$ are the elements of L and U matrices respectively.
+
+### Problem Solving Patterns
+---------------------------
+
+* **Finding L and U**: To find L and U, we need to perform row operations on A. We start with the first column of A and make all the elements below the pivot element as zero by performing row operations.
+* **Determining Pivot Elements**: The pivot elements are the elements on the diagonal that we use for row operations.
+
+### Examples with Solutions
+-------------------------
+
+**Example 1**
+
+Find L and U using Doolittle's method for:
+
+$$A = \begin{bmatrix} 2 & -3 & 4 \\ -5 & 8 & -12 \\ 7 & -11 & 15 \end{bmatrix}$$
+
+```mermaid
+graph LR
+ A[Start] --> B[Doolittle's Method]
+ B --> C[Perform row operations to make all elements below pivot as zero]
+```
+
+**Solution**
+
+Let's perform Doolittle's method on the given matrix:
+
+* Perform row operations to make $a_{11}$ as pivot.
+* Then, perform row operations to make $a_{22}$ as pivot and so on.
+
+The resulting L and U matrices will be:
+
+$$L = \begin{bmatrix} 1 & 0 & 0 \\ -5/2 & 1 & 0 \\ 7/2 & -11/4 & 1 \end{bmatrix}$$
+
+$$U = \begin{bmatrix} 2 & -3 & 4 \\ 0 & 17/2 & -21/2 \\ 0 & 0 & 23/4 \end{bmatrix}$$
+
+### Common Pitfalls
+------------------
+
+* **Pivot Elements**: Students often forget to choose the correct pivot elements.
+* **Row Operations**: They might not perform row operations correctly.
+
+### Quick Summary
+-----------------
+
+* LU decomposition is used to factorize a matrix into lower and upper triangular matrices.
+* Doolittle's method or Crout's method can be used for LU decomposition.
+* Finding L and U requires careful selection of pivot elements and performing row operations.
+
+This comprehensive theory note covers the key concepts, formulas, and problem-solving patterns required for solving GATE CS exam questions related to LU decomposition.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/linear-algebra/matrice.md b/frontend/public/assets/gate/cs/linear-algebra/matrice.md
new file mode 100644
index 0000000..6865a2b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/linear-algebra/matrice.md
@@ -0,0 +1,142 @@
+**Matrix Theory Notes**
+=======================
+
+### Introduction
+---------------
+
+Matrices are a fundamental tool in linear algebra, providing a compact and efficient way to represent systems of equations and perform operations on them. This note covers the theoretical concepts and formulas required to solve problems involving matrices.
+
+### Core Concepts
+-----------------
+
+A **matrix** is an m x n array of numbers, typically denoted as $A_{m \times n}$ or $\mathbf{A}$. The elements of a matrix are usually denoted by boldface letters (e.g., $\mathbf{a}_{ij}$).
+
+#### Matrix Operations
+
+* **Addition**: Two matrices can be added if they have the same dimensions. The sum is obtained by adding corresponding elements.
+ \[
+ \begin{pmatrix}
+ a & b \\
+ c & d
+ \end{pmatrix}
+ +
+ \begin{pmatrix}
+ e & f \\
+ g & h
+ \end{pmatrix}
+ =
+ \begin{pmatrix}
+ a + e & b + f \\
+ c + g & d + h
+ \end{pmatrix}
+ \]
+* **Multiplication**: Matrix multiplication is not commutative. The product of two matrices $\mathbf{A}$ and $\mathbf{B}$ is denoted as $\mathbf{AB}$.
+ \[
+ \begin{pmatrix}
+ a & b \\
+ c & d
+ \end{pmatrix}
+ \cdot
+ \begin{pmatrix}
+ e & f \\
+ g & h
+ \end{pmatrix}
+ =
+ \begin{pmatrix}
+ ae + bg & af + bh \\
+ ce + dg & cf + dh
+ \end{pmatrix}
+ \]
+* **Transpose**: The transpose of a matrix $\mathbf{A}$ is denoted as $\mathbf{A}^T$.
+ \[
+ \begin{pmatrix}
+ a & b \\
+ c & d
+ \end{pmatrix}^T
+ =
+ \begin{pmatrix}
+ a & c \\
+ b & d
+ \end{pmatrix}
+ \]
+
+#### Matrix Properties
+
+* **Symmetric**: A matrix is symmetric if it equals its transpose.
+* **Skew-Symmetric**: A matrix is skew-symmetric if its transpose is equal to minus the original matrix.
+
+### Key Formulas/Theorems
+-------------------------
+
+#### Trace
+
+The **trace** of a square matrix $\mathbf{A}$, denoted as $tr(\mathbf{A})$, is the sum of its diagonal elements.
+\[ tr(\mathbf{A}) = \sum_{i=1}^{n} a_{ii} \]
+
+Where $n$ is the dimension of the matrix.
+
+#### Matrix Inverse
+
+The **inverse** of a square matrix $\mathbf{A}$, denoted as $\mathbf{A}^{-1}$, satisfies the following property:
+\[ \mathbf{AA}^{-1} = \mathbf{I} \]
+
+Where $\mathbf{I}$ is the identity matrix.
+
+### Problem Solving Patterns
+---------------------------
+
+When dealing with matrices, it's essential to:
+
+* Verify the dimensions of the matrices before performing operations.
+* Use the correct formula for the operation (addition, multiplication, transpose).
+* Check for symmetric or skew-symmetric properties when applicable.
+
+### Examples with Solutions
+-------------------------
+
+**Example 1: Matrix Addition**
+
+Given two matrices $\mathbf{A}$ and $\mathbf{B}$:
+
+\[ \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} + \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = ? \]
+
+Using the addition formula, we get:
+
+\[ \begin{pmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{pmatrix} = \begin{pmatrix} 6 & 8 \\ 10 & 12 \end{pmatrix} \]
+
+**Example 2: Matrix Multiplication**
+
+Given two matrices $\mathbf{A}$ and $\mathbf{B}$:
+
+\[ \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \cdot \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = ? \]
+
+Using the multiplication formula, we get:
+
+\[ \begin{pmatrix} (1)(5) + (2)(7) & (1)(6) + (2)(8) \\ (3)(5) + (4)(7) & (3)(6) + (4)(8) \end{pmatrix} = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix} \]
+
+### Common Pitfalls
+------------------
+
+* Failing to verify the dimensions of matrices before performing operations.
+* Confusing matrix addition and multiplication.
+* Forgetting to use the correct formula for transpose.
+
+### Quick Summary
+---------------
+
+* Matrices are m x n arrays of numbers.
+* Matrix operations include addition, multiplication, and transpose.
+* The trace of a square matrix is the sum of its diagonal elements.
+* Verify dimensions before performing operations.
+* Use the correct formulas for addition, multiplication, and transpose.
+
+**Source Question Analysis**
+
+The source question (Q1) involves verifying two statements about the trace of matrix products. We can apply our understanding of matrices and their properties to determine the correctness of each statement.
+
+By analyzing this note, you should be able to:
+
+* Understand the basics of matrix operations (addition, multiplication, transpose).
+* Recall key formulas and properties (trace, inverse).
+* Apply problem-solving patterns when dealing with matrices.
+* Identify common pitfalls in matrix-related problems.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/linear-algebra/vector-operation.md b/frontend/public/assets/gate/cs/linear-algebra/vector-operation.md
new file mode 100644
index 0000000..aaa8dd2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/linear-algebra/vector-operation.md
@@ -0,0 +1,75 @@
+**Vector Operations in Linear Algebra**
+=====================================
+
+**Introduction**
+---------------
+
+In this note, we will cover the concept of vector operations, specifically the operation defined by $s(P, Q) = \sum_{i=1}^{n} P_i Q_i$, where $P$ and $Q$ are n-dimensional real vectors. We will also analyze a previous year's question to determine the scope and depth required to solve similar questions.
+
+**Core Concepts**
+-----------------
+
+A vector is an ordered set of elements, called components or coordinates, that can be added together using the rules of linear combinations. The operation defined by $s(P, Q)$ measures the dot product of two vectors $P$ and $Q$, which is a fundamental concept in linear algebra.
+
+**Key Formulas/Theorems**
+-------------------------
+
+The dot product of two vectors $P = (p_1, p_2, ..., p_n)$ and $Q = (q_1, q_2, ..., q_n)$ is defined as:
+
+$$s(P, Q) = \sum_{i=1}^{n} P_i Q_i$$
+
+The dot product satisfies the following properties:
+
+* Distributivity: $s(P + Q, R) = s(P, R) + s(Q, R)$
+* Scalar multiplication: $s(aP, Q) = as(P, Q)$
+* Commutativity: $s(P, Q) = s(Q, P)$
+
+**Problem Solving Patterns**
+---------------------------
+
+To solve problems involving vector operations, follow these steps:
+
+1. Understand the definition of the operation and its properties.
+2. Analyze the given information and identify what is being asked.
+3. Use the properties of the dot product to simplify the problem.
+
+**Examples with Solutions**
+
+### Example 1
+
+Suppose we have two vectors $P = (1, 2, 3)$ and $Q = (4, 5, 6)$. Find the value of $s(P, Q)$ using the definition:
+
+$$s(P, Q) = \sum_{i=1}^{n} P_i Q_i = (1)(4) + (2)(5) + (3)(6) = 4 + 10 + 18 = 32$$
+
+### Example 2
+
+Consider a set of vectors $\{P_1, P_2, ..., P_n\}$ such that $s(P_i, P_j) = 0$ for all distinct pairs $(i, j)$. What is the maximum cardinality possible for this set?
+
+The answer can be found by using the properties of the dot product and applying them to the given condition. The full solution will be provided in the next section.
+
+**Common Pitfalls**
+------------------
+
+When working with vector operations, students often miss the following:
+
+* Not simplifying the problem using the properties of the dot product.
+* Not identifying what is being asked (e.g., finding the value of $s(P, Q)$ versus finding the maximum cardinality).
+
+**Quick Summary**
+-----------------
+
+* The operation defined by $s(P, Q) = \sum_{i=1}^{n} P_i Q_i$ measures the dot product of two vectors.
+* The dot product satisfies distributivity, scalar multiplication, and commutativity properties.
+* To solve problems involving vector operations, use the definition and properties of the dot product.
+
+**Solution to Example 2**
+-------------------------
+
+To find the maximum cardinality possible for the set $\{P_1, P_2, ..., P_n\}$ such that $s(P_i, P_j) = 0$ for all distinct pairs $(i, j)$, we can use the following reasoning:
+
+* Since $s(P_i, P_j) = 0$, the dot product of any two vectors in the set is zero.
+* This implies that each vector in the set is orthogonal to every other vector.
+* For a set of n-dimensional real vectors, there are at most n mutually orthogonal vectors.
+* Therefore, the maximum cardinality possible for the set $\{P_1, P_2, ..., P_n\}$ is n.
+
+In this case, since the set contains 10-dimensional non-zero real vectors, the maximum cardinality possible is 10.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/network-concept/data-link-layer-protocols-routing.md b/frontend/public/assets/gate/cs/network-concept/data-link-layer-protocols-routing.md
new file mode 100644
index 0000000..61d7c82
--- /dev/null
+++ b/frontend/public/assets/gate/cs/network-concept/data-link-layer-protocols-routing.md
@@ -0,0 +1,69 @@
+**Data Link Layer Protocols Routing**
+=====================================
+
+### Introduction
+----------------
+
+The Data Link Layer (DLL) is the second layer of the OSI model, responsible for framing, error detection and correction, flow control, and access control. It provides a means of communication between devices on the same network. Routing in this context refers to the process of forwarding data packets between different networks.
+
+### Core Concepts
+-----------------
+
+#### MAC Address
+A MAC (Media Access Control) address is a unique identifier assigned to each device's network interface card (NIC). It is used for frame addressing and control at the Data Link Layer.
+
+#### ARP Protocol
+ARP (Address Resolution Protocol) is a protocol used to resolve IP addresses to MAC addresses. When an IP packet needs to be sent, the sender uses ARP to find the recipient's MAC address.
+
+### Key Formulas/Theorems
+-------------------------
+
+There are no specific formulas or theorems for this topic.
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **Understanding the OSI Model**: Be familiar with the OSI model and its layers.
+2. **Data Link Layer Protocols**: Know how DLL protocols like ARP function.
+3. **MAC Address Resolution**: Understand the process of resolving MAC addresses from IP addresses.
+
+### Examples with Solutions
+---------------------------
+
+**Example 1:** ARP Request
+
+* A device on a network wants to send an IP packet to another device.
+* It uses ARP to resolve the recipient's MAC address.
+* The ARP request is broadcast, and any device on the network can respond if it knows the MAC address.
+
+```mermaid
+graph LR
+ Device1[Device] --> ARP Request: Broadcast
+ Device2[Device with IP] -.-> ARP Response: Unicast
+```
+
+**Example 2:** ARP Reply
+
+* A device receives an ARP request and responds with its own MAC address.
+* The response is sent unicast to the requesting device.
+
+```mermaid
+graph LR
+ Device1[Device] --> ARP Request: Broadcast
+ Device2[Device with IP] -.-> ARP Response: Unicast
+```
+
+### Common Pitfalls
+--------------------
+
+1. **Confusing MAC and IP addresses**: Remember that MAC addresses are for frame addressing, while IP addresses are for packet routing.
+2. **ARP protocol behavior**: Understand that ARP requests are broadcast, while replies are unicast.
+
+### Quick Summary
+---------------
+
+* Data Link Layer protocols (like ARP) resolve MAC addresses from IP addresses.
+* ARP requests are broadcast, and responses are unicast.
+* MAC addresses are unique identifiers for network interface cards.
+
+Note: The provided instructions and response were written in Markdown format as requested.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/probability-and-statistic/probability.md b/frontend/public/assets/gate/cs/probability-and-statistic/probability.md
new file mode 100644
index 0000000..6238e6d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/probability-and-statistic/probability.md
@@ -0,0 +1,115 @@
+**Probability Theory Note**
+==========================
+
+### Introduction
+-----------------
+
+Probability is a branch of mathematics that deals with measuring uncertainty and chance events. It provides a framework for modeling random phenomena, making predictions, and estimating the likelihood of future outcomes. In this note, we'll cover the essential concepts and formulas to tackle probability questions, including those similar to Q1 (cs_2022_61).
+
+### Core Concepts
+-----------------
+
+#### Random Experiments and Sample Spaces
+
+* A **random experiment** is an action or situation where the outcome is uncertain.
+* The **sample space**, denoted by $\Omega$, is the set of all possible outcomes.
+
+```mermaid
+graph LR
+A[Random Experiment] --> B[Sample Space]
+```
+
+#### Events and Their Probabilities
+
+* An **event** is a subset of the sample space, e.g., rolling an even number.
+* The **probability** of an event $A$, denoted by $P(A)$, is a real-valued function that satisfies:
+
+$$
+P(\Omega) = 1 \quad \text{and} \quad P(\emptyset) = 0
+$$
+
+#### Conditional Probability and Independence
+
+* The **conditional probability** of an event $A$ given $B$, denoted by $P(A|B)$, is defined as:
+
+$$
+P(A|B) = \frac{P(A \cap B)}{P(B)}
+$$
+
+* Two events $A$ and $B$ are **independent** if:
+
+$$
+P(A \cap B) = P(A) \cdot P(B)
+$$
+
+### Key Formulas/Theorems
+-------------------------
+
+#### Bayes' Theorem
+
+* Given two events $A$ and $B$, the posterior probability of $A$ given $B$ is:
+
+$$
+P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}
+$$
+
+#### Probability Mass Function (PMF)
+
+* The **probability mass function** (PMF), denoted by $p(x)$, assigns a probability to each outcome $x$ in the sample space.
+
+$$
+\sum_{x \in \Omega} p(x) = 1
+$$
+
+### Problem Solving Patterns
+---------------------------
+
+#### Q1-like Problems
+
+* **Without Replacement**: When drawing a ball from the box without replacement (e.g., drawing a green ball), calculate probabilities using conditional probability.
+* **With Replacement**: When drawing a ball with replacement (e.g., drawing an orange ball), use simple probability multiplication.
+
+### Examples with Solutions
+---------------------------
+
+#### Example 1
+
+Consider a random experiment where we roll a fair six-sided die. What is the probability of rolling an even number?
+
+* Sample space: $\Omega = \{1, 2, 3, 4, 5, 6\}$
+* Event: $A$ (rolling an even number)
+* Probability: $P(A) = P(\{2, 4, 6\}) = \frac{1}{2}$
+
+#### Example 2
+
+Suppose we have a box with three green balls and two orange balls. What is the probability of drawing an orange ball on the second draw if the first drawn ball was green?
+
+* **Without Replacement**: Since a green ball was drawn without replacement, calculate the conditional probability.
+
+```latex
+P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}
+```
+
+* Apply the formula using specific values:
+
+$$
+P(\text{orange}|G) = \frac{\frac{2}{5}}{\frac{3}{5}}
+$$
+
+### Common Pitfalls
+-------------------
+
+* **Confusing With and Without Replacement**: Pay attention to whether the problem specifies replacement or not.
+* **Forgetting to Apply Conditional Probability**: Use conditional probability when necessary (e.g., Q1).
+
+### Quick Summary
+-----------------
+
+* Random experiments, sample spaces, and events
+* Probabilities of events, including conditional probability
+* Independence and Bayes' theorem
+* PMF and problem-solving patterns for Q1-like problems
+
+---
+
+I hope this comprehensive theory note meets your requirements.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/probability-and-statistic/random-variable.md b/frontend/public/assets/gate/cs/probability-and-statistic/random-variable.md
new file mode 100644
index 0000000..90380e6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/probability-and-statistic/random-variable.md
@@ -0,0 +1,104 @@
+**Random Variable**
+=====================
+
+### Introduction
+A random variable is a function that assigns a real number to each outcome of an experiment or a set of outcomes. It's a crucial concept in probability and statistics, allowing us to quantify uncertainty and make informed decisions.
+
+### Core Concepts
+#### Definition
+Given an experiment with possible outcomes $\Omega$, a random variable $X$ is a function that maps each outcome $\omega \in \Omega$ to a real number $x \in \mathbb{R}$.
+
+#### Types of Random Variables
+* **Discrete random variables**: Take on distinct, countable values (e.g., number of heads in coin tosses).
+* **Continuous random variables**: Can take any value within a given interval or range (e.g., temperature, lifetime of a component).
+
+#### Probability Distribution Functions
+A probability distribution function (pdf) $f(x)$ describes the probability of observing a particular value $x$.
+
+### Key Formulas/Theorems
+
+#### Exponential Distribution
+For an exponentially distributed random variable with parameter $\lambda$, the pdf is given by:
+
+$$f(x) = \begin{cases} \lambda e^{-\lambda x} & x \geq 0 \\ 0 & x < 0 \end{cases}$$
+
+The expected value and variance of an exponential distribution are:
+
+$E(X) = \frac{1}{\lambda}$
+
+$Var(X) = \frac{1}{\lambda^2}$
+
+#### Binomial Distribution
+For a binomial distribution with $n$ trials, each with probability $p$ of success, the pdf is given by:
+
+$$P(X=k) = \binom{n}{k} p^k (1-p)^{n-k}$$
+
+The expected value and variance of a binomial distribution are:
+
+$E(X) = np$
+
+$Var(X) = np(1-p)$
+
+### Problem Solving Patterns
+#### Source Question 1: Exponential Distribution
+* Identify the probability density function as exponential with parameter $\lambda = 2$.
+* Find the expected lifetime by taking the reciprocal of $\lambda$: $E(X) = \frac{1}{\lambda} = \frac{1}{2}$.
+* Round the expected lifetime to 2 decimal places: $0.50$.
+* Calculate the probability that the lifetime exceeds the expected value using the exponential distribution's cumulative distribution function (CDF):
+
+$$P(X > E(X)) = P(X > 0.50) = 1 - F(0.50)$$
+
+where $F(x)$ is the CDF of an exponential distribution.
+
+#### Source Question 2: Binomial Distribution
+* Identify the probability of success as $p = 0.4$ and the number of trials as $n = 1000$.
+* Use the binomial distribution's formula to find the expected value:
+
+$$E(X) = np = 1000 \times 0.4 = 400$$
+
+* Calculate the standard deviation using the formula for variance:
+
+$$Var(X) = np(1-p) = 1000 \times 0.4 \times (1-0.4) = 160$$
+
+### Examples with Solutions
+#### Example: Exponential Distribution
+Suppose the lifetime of a component is exponentially distributed with parameter $\lambda = 3$. Find the probability that its lifetime exceeds $2$.
+
+```mermaid
+graph LR
+ A[Expected value] -->|1/λ|> B(1/3)
+ C[Lifetime] -->|>2| D(P(X > 2))
+```
+
+Solution:
+
+Using the CDF of an exponential distribution:
+
+$$P(X > 2) = 1 - F(2) = 1 - e^{-\lambda x} = 1 - e^{-3 \times 2} = 0.98$$
+
+#### Example: Binomial Distribution
+Suppose we toss a biased coin with probability $p = 0.5$ of landing heads up. Find the expected value and standard deviation of the number of heads in $n = 10$ tosses.
+
+```mermaid
+graph LR
+ A[Expected value] -->|np|> B(5)
+ C[Variance] -->|np(1-p)|> D(2.5)
+```
+
+Solution:
+
+Expected value: $E(X) = np = 10 \times 0.5 = 5$
+
+Variance: $Var(X) = np(1-p) = 10 \times 0.5 \times (1-0.5) = 2.5$
+
+Standard deviation: $\sigma = \sqrt{Var(X)} = \sqrt{2.5} = 1.58$ (rounded to 2 decimal places)
+
+### Common Pitfalls
+* Confusing the expected value with the median or mode.
+* Failing to account for the parameter values when applying distribution formulas.
+
+### Quick Summary
+* Random variables are functions that assign real numbers to outcomes of an experiment.
+* Types: discrete, continuous.
+* Probability distributions: exponential, binomial.
+* Key formulas and theorems: expected value, variance, CDF.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/activation-record.md b/frontend/public/assets/gate/cs/programming-and-data-structure/activation-record.md
new file mode 100644
index 0000000..fdb4261
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/activation-record.md
@@ -0,0 +1,102 @@
+**Activation Record**
+======================
+
+**Introduction**
+---------------
+
+An activation record, also known as a stack frame or call stack entry, is a data structure used by programming languages to keep track of function calls and returns. It contains information about the current state of the program, including local variables, parameters, return addresses, and other relevant details.
+
+**Core Concepts**
+-----------------
+
+### What is an Activation Record?
+
+An activation record is created when a function is called and stored on the call stack. Each function call creates a new activation record, which is pushed onto the call stack. The topmost activation record represents the current state of the program.
+
+### Components of an Activation Record
+
+* **Local Variables**: Storage for variables declared within the function.
+* **Parameters**: Storage for values passed to the function from its caller.
+* **Return Address**: The memory address where execution should resume after the function returns.
+* **Dynamic Link**: A pointer to the previous activation record (i.e., the caller).
+* **Static Link**: A pointer to a static area of memory that stores information about the function and its parameters.
+
+### Creating and Deleting Activation Records
+
+When a function is called, an activation record is created and pushed onto the call stack. When the function returns, its activation record is deleted from the call stack, and execution resumes at the return address specified in the caller's activation record.
+
+**Key Formulas/Theorems**
+-------------------------
+
+There are no specific formulas or theorems for understanding activation records. However, it is essential to understand how they work in conjunction with the call stack.
+
+**Problem Solving Patterns**
+---------------------------
+
+### Identifying Activation Records
+
+To identify activation records in a given program, follow these steps:
+
+1. Start at the topmost function call and create an activation record.
+2. Push each new function call onto the call stack as an activation record is created for it.
+3. When a function returns, pop its activation record from the call stack.
+
+### Understanding Activation Record Layout
+
+When designing your own programming language or implementing one in code, consider how you will organize and use activation records to keep track of program state.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Creating an Activation Record
+
+Suppose we have a simple recursive function `f(x)` that calls itself until it reaches the base case. The corresponding activation record would look like this:
+
+```mermaid
+graph LR
+ A[Main] --> B[f(5)]
+ C[f(4)] --> D[f(3)]
+ E[f(2)] --> F[f(1)]
+```
+
+In this example, we start at the `main` function and create an activation record for each recursive call to `f(x)`. When the base case is reached (`x = 1`), we return from the innermost call stack frame.
+
+### Example 2: Deleting Activation Records
+
+Now let's consider a scenario where we have two nested function calls:
+
+```mermaid
+graph LR
+ A[Main] --> B[f(5)]
+ C[f(4)] --> D[g(3)]
+```
+
+When `g(3)` returns, its activation record is deleted from the call stack. The `f(4)` activation record remains on the call stack until it also returns.
+
+**Common Pitfalls**
+------------------
+
+1. **Incorrectly handling function calls and returns**: Make sure to create new activation records for each function call and delete them when functions return.
+2. **Not properly passing parameters between functions**: Verify that the correct values are being passed between functions and stored in their respective activation records.
+
+**Quick Summary**
+-----------------
+
+* Activation records store information about the current state of a program, including local variables, parameters, and return addresses.
+* Each function call creates a new activation record, which is pushed onto the call stack. When a function returns, its activation record is deleted from the call stack.
+* Use this knowledge to design your own programming language or implement one in code.
+
+**References**
+---------------
+
+For further reading on this topic, consider consulting standard texts on computer science and programming languages:
+
+* [ "The C Programming Language" by Brian Kernighan and Dennis Ritchie ](https://en.wikipedia.org/wiki/The_C_Programming_Language)
+* [ "Introduction to Algorithms" by Thomas H. Cormen et al.](https://en.wikipedia.org/wiki/Introduction_to_Algorithms)
+
+**Note**
+----
+
+This theory note is designed for the GATE CS exam and may not cover all possible details of activation records in depth. Be sure to supplement this with additional study materials and practice problems for a more comprehensive understanding.
+
+[<-- Back to Main Menu](../README.md)
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/array.md b/frontend/public/assets/gate/cs/programming-and-data-structure/array.md
new file mode 100644
index 0000000..5e30256
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/array.md
@@ -0,0 +1,90 @@
+**Array Theory Note**
+=======================
+
+### Introduction
+---------------
+
+Arrays are a fundamental data structure in programming, allowing for efficient storage and manipulation of collections of elements. This note covers key concepts, formulas, and problem-solving patterns related to arrays, ensuring you're well-prepared for GATE CS exam questions.
+
+### Core Concepts
+-----------------
+
+* **Array Definition**: An array is a collection of elements of the same data type stored in contiguous memory locations.
+* **Array Indexing**: Arrays use 0-based indexing, meaning the first element is at index 0 and the last element at `n-1` (where `n` is the size of the array).
+* **Memory Layout**: Elements are stored in adjacent memory locations.
+
+### Key Formulas/Theorems
+-------------------------
+
+None specific to arrays. However, understanding pointer arithmetic is crucial:
+
+$$
+p[i] = p + i \cdot sizeof(element)
+$$
+
+$$
+*(p + i) = (p)[i]
+$$
+
+### Problem Solving Patterns
+-----------------------------
+
+1. **Pointer Arithmetic**: Understand how pointers move in memory and how to perform operations like incrementing, decrementing, and calculating offsets.
+2. **Array Indexing**: Recognize that arrays use 0-based indexing and know how to calculate indices for given elements or vice versa.
+
+### Examples with Solutions
+---------------------------
+
+**Q1: Output of C Program**
+-----------------------------
+
+Given code:
+```c
+double a[2] = {20.0, 25.0}, *p, *q;
+
+p = a;
+q = p + 1;
+
+printf (“%d, %d”, (int) (q – p), (int) (*q – *p));
+```
+
+Solution:
+
+* `q - p` calculates the offset in memory from `a[0]` to `a[1]`, which is `sizeof(double)` or 8 bytes.
+* `*(q - p)` accesses the element at that memory location, which is `25.0`.
+* The correct output should be `(int) q – (int) *p = 8`.
+
+**Q5: Finding an Element in a Multidimensional Array**
+------------------------------------------------------
+
+Given code:
+```c
+#include
+
+int main() {
+ int a[4][5];
+ for (i = 0; i < 4; i++)
+ for (j = 0; j < 5; j++)
+ a[i][j] = 10 * i + j;
+ printf("%d", *(a[1] + 9));
+}
+```
+
+Solution:
+
+* `a[1]` is the second row, so its first element (`a[1][0]`) would be at address `*(a[1])`.
+* To access `a[1][4]`, add an offset of `sizeof(int) \* 5` to the base address, which gives `*(a[1] + 9)`.
+
+### Common Pitfalls
+--------------------
+
+* Failing to account for array indexing (0-based).
+* Not understanding pointer arithmetic.
+* Misusing multidimensional arrays and pointer expressions.
+
+### Quick Summary
+------------------
+
+* Arrays store elements of the same data type in contiguous memory locations.
+* 0-based indexing is used, so the first element is at index 0.
+* Pointer arithmetic allows moving through an array's memory layout efficiently.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/arrays-stacks-queues-linked-list.md b/frontend/public/assets/gate/cs/programming-and-data-structure/arrays-stacks-queues-linked-list.md
new file mode 100644
index 0000000..7eebc84
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/arrays-stacks-queues-linked-list.md
@@ -0,0 +1,122 @@
+Arrays, Stacks, Queues, and Linked Lists
+=====================================
+
+Introduction
+------------
+
+Arrays, stacks, queues, and linked lists are fundamental data structures used in computer science. They provide efficient ways to store and manipulate large amounts of data. Understanding these data structures is essential for programming and problem-solving.
+
+Core Concepts
+-------------
+
+### Arrays
+
+An array is a collection of elements of the same data type stored in contiguous memory locations.
+
+* **Indexing**: Arrays are indexed, meaning each element can be accessed using an index or subscript.
+* **Fixed Size**: The size of an array is fixed at compile time and cannot be changed during execution.
+
+### Stacks
+
+A stack is a last-in-first-out (LIFO) data structure, where the most recently added element is removed first.
+
+* **Push**: Adding an element to the top of the stack.
+* **Pop**: Removing an element from the top of the stack.
+
+### Queues
+
+A queue is a first-in-first-out (FIFO) data structure, where the first added element is removed first.
+
+* **Enqueue**: Adding an element to the end of the queue.
+* **Dequeue**: Removing an element from the front of the queue.
+
+### Linked Lists
+
+A linked list is a dynamic collection of elements, where each element points to the next one.
+
+* **Node**: Each element in a linked list is called a node.
+* **Pointer**: Each node contains a pointer to the next node.
+
+Key Formulas/Theorems
+--------------------
+
+None specific to this topic
+
+Problem Solving Patterns
+----------------------
+
+1. **Array Indexing**:
+ * Use `a[i][j][k]` for multi-dimensional arrays.
+2. **Stack Operations**:
+ * Use `push` and `pop` operations for stacks.
+3. **Queue Operations**:
+ * Use `enqueue` and `dequeue` operations for queues.
+
+Examples with Solutions
+----------------------
+
+### Example 1: Array Indexing
+
+```c
+int a[3][3] = {{1, 2}, {3, 4}};
+printf("%d %d", a[0][0], a[1][1]);
+```
+
+Output:
+
+* `1 4`
+
+Explanation:
+
+* We use `a[0][0]` to access the element at row 0, column 0.
+* We use `a[1][1]` to access the element at row 1, column 1.
+
+### Example 2: Stack Operations
+
+```c
+#include
+
+void push(int *stack, int new_element) {
+ stack[++top] = new_element;
+}
+
+int pop(int *stack) {
+ return stack[top--];
+}
+
+int main() {
+ int stack[10];
+ top = -1;
+ push(stack, 5);
+ push(stack, 3);
+ printf("%d", pop(stack));
+ return 0;
+}
+```
+
+Output:
+
+* `3`
+
+Explanation:
+
+* We use the `push` function to add elements to the stack.
+* We use the `pop` function to remove an element from the stack.
+
+Common Pitfalls
+----------------
+
+1. **Array Indexing**:
+ * Off-by-one errors when accessing array indices.
+2. **Stack Operations**:
+ * Using `push` and `pop` operations on queues, or vice versa.
+3. **Queue Operations**:
+ * Using `enqueue` and `dequeue` operations on stacks, or vice versa.
+
+Quick Summary
+--------------
+
+* Arrays: Fixed-size collection of elements, indexed using subscripts.
+* Stacks: LIFO data structure, with push and pop operations.
+* Queues: FIFO data structure, with enqueue and dequeue operations.
+* Linked Lists: Dynamic collection of elements, with pointers between nodes.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/arrays-stacks-queues-linked-lists-trees-binary-search-trees-binary-heaps-graph.md b/frontend/public/assets/gate/cs/programming-and-data-structure/arrays-stacks-queues-linked-lists-trees-binary-search-trees-binary-heaps-graph.md
new file mode 100644
index 0000000..5a22829
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/arrays-stacks-queues-linked-lists-trees-binary-search-trees-binary-heaps-graph.md
@@ -0,0 +1,341 @@
+**Data Structures and Algorithms**
+==============================
+
+**Introduction**
+---------------
+
+Data structures are the building blocks of efficient algorithms. They provide a way to organize and store data in a manner that allows for efficient retrieval, manipulation, and storage. In this note, we will cover some of the most commonly used data structures: arrays, stacks, queues, linked lists, trees (binary search trees, binary heaps), and graphs.
+
+**Core Concepts**
+-----------------
+
+### Arrays
+
+An array is a collection of elements of the same data type stored in contiguous memory locations. Arrays are indexed, meaning each element can be accessed using its index.
+
+* **Access Time:** O(1)
+* **Insertion/Deletion Time:** O(n)
+
+```mermaid
+graph LR
+A[Array] -->|Indexed|> B[Index]
+```
+
+### Stacks
+
+A stack is a Last-In-First-Out (LIFO) data structure. Elements are added and removed from the top of the stack.
+
+* **Access Time:** O(1)
+* **Insertion/Deletion Time:** O(1)
+
+```mermaid
+graph LR
+A[Stack] -->|Push|> B[Element]
+C[Popped Element] <--|Pop|> A
+```
+
+### Queues
+
+A queue is a First-In-First-Out (FIFO) data structure. Elements are added to the end of the queue and removed from the front.
+
+* **Access Time:** O(1)
+* **Insertion/Deletion Time:** O(1)
+
+```mermaid
+graph LR
+A[Queue] -->|Enqueue|> B[Element]
+C[Dequeued Element] <--|Dequeue|> A
+```
+
+### Linked Lists
+
+A linked list is a dynamic collection of elements, where each element points to the next element.
+
+* **Access Time:** O(n)
+* **Insertion/Deletion Time:** O(1)
+
+```mermaid
+graph LR
+A[Head] -->|Next Pointer|> B[Element]
+C[Tail] <--|Previous Pointer|> B
+```
+
+### Trees
+
+A tree is a hierarchical data structure, consisting of nodes and edges.
+
+* **Node:** A node has a value and zero or more child nodes.
+* **Edge:** An edge connects two nodes.
+
+```mermaid
+graph LR
+A[Root] -->|Edge|> B[Child]
+C[Grandchild] <--|Edge|> B
+```
+
+### Binary Search Trees (BSTs)
+
+A BST is a type of tree where each node has at most two child nodes and all elements in the left subtree are less than the root, while all elements in the right subtree are greater.
+
+* **Height:** O(log n)
+* **Search Time:** O(log n)
+
+```mermaid
+graph LR
+A[Root] -->|Left Child|> B
+C[Right Child] <--|Edge|> A
+```
+
+### Binary Heaps
+
+A binary heap is a type of BST where the parent node is either greater than (max heap) or less than (min heap) its child nodes.
+
+* **Height:** O(log n)
+* **Insertion/Deletion Time:** O(log n)
+
+```mermaid
+graph LR
+A[Root] -->|Left Child|> B
+C[Right Child] <--|Edge|> A
+```
+
+### Graphs
+
+A graph is a non-linear data structure consisting of nodes and edges.
+
+* **Node:** A node has zero or more adjacent nodes.
+* **Edge:** An edge connects two nodes.
+
+```mermaid
+graph LR
+A[Node 1] -->|Edge|> B[Node 2]
+C[Node 3] <--|Edge|> B
+```
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Time Complexity
+
+| Data Structure | Access Time | Insertion/Deletion Time |
+| --- | --- | --- |
+| Array | O(1) | O(n) |
+| Stack | O(1) | O(1) |
+| Queue | O(1) | O(1) |
+| Linked List | O(n) | O(1) |
+| BST | O(log n) | O(log n) |
+| Binary Heap | O(log n) | O(log n) |
+
+### Space Complexity
+
+* Array: O(n)
+* Stack: O(n)
+* Queue: O(n)
+* Linked List: O(n)
+* BST: O(n)
+* Binary Heap: O(n)
+
+**Problem Solving Patterns**
+---------------------------
+
+### Arrays
+
+* Use arrays when the size of the collection is fixed and known.
+* Use array operations (e.g., `push`, `pop`) to implement stacks and queues.
+
+```python
+# Implement a stack using an array
+class Stack:
+ def __init__(self):
+ self.array = []
+
+ def push(self, element):
+ self.array.append(element)
+
+ def pop(self):
+ return self.array.pop()
+```
+
+### Linked Lists
+
+* Use linked lists when the size of the collection is dynamic and unknown.
+* Use pointer operations (e.g., `next`, `previous`) to navigate the list.
+
+```python
+# Implement a linked list
+class Node:
+ def __init__(self, value):
+ self.value = value
+ self.next = None
+
+class LinkedList:
+ def __init__(self):
+ self.head = None
+
+ def append(self, value):
+ new_node = Node(value)
+ if self.head is None:
+ self.head = new_node
+ else:
+ current = self.head
+ while current.next:
+ current = current.next
+ current.next = new_node
+```
+
+### Trees (BSTs)
+
+* Use BSTs when the collection needs to be sorted and frequently searched.
+* Use tree traversal algorithms (e.g., inorder, preorder) to navigate the tree.
+
+```python
+# Implement a BST
+class Node:
+ def __init__(self, value):
+ self.value = value
+ self.left = None
+ self.right = None
+
+class BST:
+ def __init__(self):
+ self.root = None
+
+ def insert(self, value):
+ if self.root is None:
+ self.root = Node(value)
+ else:
+ current = self.root
+ while True:
+ if value < current.value:
+ if current.left is None:
+ current.left = Node(value)
+ break
+ current = current.left
+ elif value > current.value:
+ if current.right is None:
+ current.right = Node(value)
+ break
+ current = current.right
+```
+
+### Graphs
+
+* Use graphs when the collection needs to be represented as a network of nodes and edges.
+* Use graph traversal algorithms (e.g., BFS, DFS) to navigate the graph.
+
+```python
+# Implement a graph
+class Node:
+ def __init__(self, value):
+ self.value = value
+ self.adjacent_nodes = []
+
+class Graph:
+ def __init__(self):
+ self.nodes = {}
+
+ def add_node(self, value):
+ self.nodes[value] = Node(value)
+
+ def add_edge(self, node1_value, node2_value):
+ node1 = self.nodes[node1_value]
+ node2 = self.nodes[node2_value]
+ node1.adjacent_nodes.append(node2)
+ node2.adjacent_nodes.append(node1)
+```
+
+**Examples with Solutions**
+---------------------------
+
+### Array Example
+
+```python
+# Find the maximum element in an array
+def max_element(arr):
+ return max(arr)
+
+arr = [3, 5, 1, 9]
+print(max_element(arr)) # Output: 9
+```
+
+### Linked List Example
+
+```python
+# Append an element to a linked list
+def append(head, value):
+ new_node = Node(value)
+ if head is None:
+ return new_node
+ current = head
+ while current.next:
+ current = current.next
+ current.next = new_node
+ return head
+
+head = LinkedList()
+append(head, 3)
+append(head, 5)
+print(head.value) # Output: 3
+```
+
+### BST Example
+
+```python
+# Insert an element into a BST
+def insert(root, value):
+ if root is None:
+ return Node(value)
+ current = root
+ while True:
+ if value < current.value:
+ if current.left is None:
+ current.left = Node(value)
+ break
+ current = current.left
+ elif value > current.value:
+ if current.right is None:
+ current.right = Node(value)
+ break
+ current = current.right
+
+root = BST()
+insert(root, 5)
+insert(root, 3)
+print(root.value) # Output: 5
+```
+
+### Graph Example
+
+```python
+# Add an edge to a graph
+def add_edge(graph, node1_value, node2_value):
+ node1 = graph.nodes[node1_value]
+ node2 = graph.nodes[node2_value]
+ node1.adjacent_nodes.append(node2)
+ node2.adjacent_nodes.append(node1)
+
+graph = Graph()
+add_edge(graph, 3, 5)
+print(graph.nodes[3].adjacent_nodes) # Output: [Node(5)]
+```
+
+**Common Pitfalls**
+------------------
+
+* Arrays and linked lists are often confused with each other. Make sure to use the correct data structure for your problem.
+* When using trees (BSTs), make sure to maintain the tree's balance factor to ensure efficient search, insertion, and deletion operations.
+* When working with graphs, make sure to properly implement edge traversal algorithms to avoid infinite loops.
+
+**Quick Summary**
+-----------------
+
+| Data Structure | Time Complexity | Space Complexity |
+| --- | --- | --- |
+| Array | O(1) | O(n) |
+| Stack | O(1) | O(n) |
+| Queue | O(1) | O(n) |
+| Linked List | O(n) | O(n) |
+| BST | O(log n) | O(n) |
+| Binary Heap | O(log n) | O(n) |
+
+By following this study note, you should be well-prepared to tackle questions related to arrays, stacks, queues, linked lists, trees (BSTs), binary heaps, and graphs. Practice solving problems using these data structures and algorithms to improve your skills.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/big-o-notation-analysis.md b/frontend/public/assets/gate/cs/programming-and-data-structure/big-o-notation-analysis.md
new file mode 100644
index 0000000..01ca282
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/big-o-notation-analysis.md
@@ -0,0 +1,78 @@
+**Big O Notation Analysis**
+==========================
+
+### Introduction
+
+Big O notation analysis is a crucial aspect of algorithm design and complexity theory. It provides an upper bound on the time or space complexity of an algorithm, allowing us to predict its performance as the input size increases.
+
+### Core Concepts
+
+* **Time Complexity**: The amount of time an algorithm takes to complete, typically measured in terms of the number of operations (e.g., comparisons, assignments).
+* **Space Complexity**: The amount of memory used by an algorithm.
+* **Big O Notation**: A mathematical notation that describes the upper bound on an algorithm's complexity.
+
+### Key Formulas/Theorems
+
+#### Asymptotic Notations
+
+| Notation | Description |
+| --- | --- |
+| O(g(n)) | Upper bound (at most) |
+| Ω(g(n)) | Lower bound (at least) |
+| Θ(g(n)) | Tight bound (exactly) |
+
+#### Big O Operations
+
+| Operation | Complexity |
+| --- | --- |
+| Assignment | O(1) |
+| Comparison | O(1) |
+| Loop Iteration | O(n), O(log n), ... |
+| Array Access | O(1) |
+
+### Problem Solving Patterns
+
+When analyzing the time or space complexity of an algorithm, consider:
+
+* **Loop Iterations**: Count the number of iterations and multiply by the operation inside the loop.
+* **Recursion**: Analyze the recursive calls and their impact on the overall complexity.
+
+### Examples with Solutions
+
+**Example 1: Finding the Maximum Element in an Array**
+
+```python
+def find_max(arr):
+ max_val = arr[0]
+ for i in range(1, len(arr)):
+ if arr[i] > max_val:
+ max_val = arr[i]
+ return max_val
+```
+
+Time Complexity: O(n), where n is the length of the array.
+
+**Example 2: Bubble Sort**
+
+```python
+def bubble_sort(arr):
+ for i in range(len(arr)):
+ for j in range(len(arr) - 1):
+ if arr[j] > arr[j + 1]:
+ arr[j], arr[j + 1] = arr[j + 1], arr[j]
+```
+
+Time Complexity: O(n^2), where n is the length of the array.
+
+### Common Pitfalls
+
+* **Overlooking Loop Iterations**: Failing to account for loop iterations can lead to incorrect time complexity analysis.
+* **Ignoring Recursive Calls**: Neglecting recursive calls can result in a misunderstanding of an algorithm's overall complexity.
+
+### Quick Summary
+
+* Big O notation provides an upper bound on the time or space complexity of an algorithm.
+* Time and space complexities are essential in understanding an algorithm's performance.
+* Loop iterations, recursive calls, and array access operations impact complexity analysis.
+
+Note: This theory note is designed to cover the concepts tested in the source question (Q1). Additional examples and explanations can be added as needed.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/c-programming.md b/frontend/public/assets/gate/cs/programming-and-data-structure/c-programming.md
new file mode 100644
index 0000000..e8f45f8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/c-programming.md
@@ -0,0 +1,141 @@
+**C Programming Study Note**
+==========================
+
+### Introduction
+---------------
+
+C programming is a fundamental skill for any aspiring computer scientist or software engineer. This study note covers key concepts, formulas, and problem-solving patterns essential for tackling questions on C programming in the GATE CS exam.
+
+### Core Concepts
+-----------------
+
+#### Function Evaluation Order
+In C, function parameters are evaluated from right to left. This means that when a function is called with multiple arguments, the expressions on the right side of the comma operator are evaluated first.
+
+**Example:**
+```c
+int g(int p) { printf("%d", p); return p; }
+int h(int q) { printf("%d", q); return q; }
+
+void f(int x, int y) {
+ g(x);
+ h(y);
+}
+```
+In the function `f`, `x` is evaluated first (since it's on the right side of the comma), then its value is passed to `g`. The expression `h(20)` is evaluated next, and so on.
+
+#### Function Evaluation Order Formula
+
+No specific formula for this concept. It's essential to understand how function parameters are evaluated in C.
+
+### Key Formulas/Theorems
+-------------------------
+
+None specific to C programming in these notes. However, we'll cover relevant algorithms and data structures later.
+
+### Problem Solving Patterns
+-----------------------------
+
+#### Pattern 1: Function Evaluation Order
+
+When solving problems involving function evaluation order, follow these steps:
+
+1. Identify the functions involved.
+2. Determine the parameter order (left-to-right or right-to-left).
+3. Evaluate each expression from right to left if necessary.
+
+**Example (Q1):**
+```c
+f(g(10), h(20))
+```
+In this example, `g(10)` is evaluated first since its expression is on the right side of the comma. Then `h(20)` is evaluated, and finally their values are passed to `f`.
+
+#### Pattern 2: Loop Control
+
+When dealing with loops in C programming, be aware of the following:
+
+* The condition inside a loop (e.g., `i < y`) will always be checked before executing the loop body.
+* When incrementing/decrementing variables within a loop, remember that this affects the values used in subsequent iterations.
+
+**Example (Q2):**
+```c
+for (int i = 0; i < y; i++) {
+ x += x + y;
+}
+```
+In this example, the value of `y` remains unchanged throughout the loop. The expression `x + y` is evaluated first, and then the result is added to `x`.
+
+### Examples with Solutions
+---------------------------
+
+#### Example 1: Function Evaluation Order
+
+```c
+int g(int p) { printf("%d", p); return p; }
+int h(int q) { printf("%d", q); return q; }
+
+void f(int x, int y) {
+ g(x);
+ h(y);
+}
+
+int main() {
+ f(g(10), h(20));
+}
+```
+**Solution:**
+
+1. Evaluate `g(10)` first: `x = 10`.
+2. Evaluate `h(20)` next: `y = 20`.
+3. Pass the values to `f`: `f(10, 20)`.
+
+The output will be `20102010`.
+
+#### Example 2: Loop Control
+
+```c
+int f(int x, int y) {
+ for (int i = 0; i < y; i++) {
+ x += x + y;
+ }
+}
+
+int main() {
+ printf("%d", f(1, 3));
+}
+```
+**Solution:**
+
+1. Initialize `i` to 0.
+2. Evaluate the condition `i < y`: since `y = 3`, it's always true.
+3. Execute the loop body:
+ * Increment `x` by `x + y`: `x += x + 3`.
+4. Repeat steps 2-3 for `i = 1, 2`.
+5. Return the final value of `x`.
+
+The output will be `27`.
+
+### Common Pitfalls
+-------------------
+
+#### Inadequate Function Evaluation Order Understanding
+
+Many students forget that function parameters are evaluated from right to left.
+
+**Example:**
+```c
+int g(int p) { printf("%d", p); return p; }
+void f(int x, int y) {
+ g(x + y);
+}
+```
+In this example, `x` and `y` are evaluated first (right-to-left order), then their sum is passed to `g`.
+
+### Quick Summary
+----------------
+
+* C programming involves function evaluation order from right to left.
+* Loops in C involve checking the condition before executing the loop body.
+* Be aware of increment/decrement operations within loops.
+
+This study note covers essential concepts and patterns for tackling questions on C programming. Make sure to practice these examples to solidify your understanding!
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/functional-dependencie.md b/frontend/public/assets/gate/cs/programming-and-data-structure/functional-dependencie.md
new file mode 100644
index 0000000..e7140ae
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/functional-dependencie.md
@@ -0,0 +1,109 @@
+**Functional Dependencies**
+=========================
+
+### Introduction
+-----------------
+
+In database design and relational algebra, functional dependencies (FDs) are a fundamental concept that helps determine the relationships between attributes of a relation. They play a crucial role in identifying the superkeys of a relation.
+
+### Core Concepts
+-----------------
+
+A **functional dependency** is a relationship between two sets of attributes in a relation, where one set determines the other. It's denoted as:
+
+$$X \rightarrow Y$$
+
+where $X$ and $Y$ are subsets of the relation's attribute set.
+
+* **Determinant**: The left-hand side of the FD ($X$) is called the determinant.
+* **Dependent attributes**: The right-hand side of the FD ($Y$) consists of dependent attributes.
+
+**Examples:**
+
+* $AB \rightarrow C$: Attribute $C$ depends on both $A$ and $B$.
+* $D \rightarrow C$: Attribute $C$ is determined by attribute $D$ alone.
+
+### Key Formulas/Theorems
+-------------------------
+
+No specific formulas or theorems are directly applicable to functional dependencies, but understanding the concepts of determinants and dependent attributes is essential for solving problems related to FDs.
+
+### Problem Solving Patterns
+-----------------------------
+
+When dealing with functional dependencies:
+
+1. **Identify the determinant** ($X$) and the dependent attributes ($Y$).
+2. **Analyze each attribute's influence**: Determine which attributes are determinants of other attributes.
+3. **Determine superkeys**: Find combinations of attributes that satisfy all FDs.
+
+### Examples with Solutions
+------------------------------
+
+Consider a relation `R(A, B, C, D, E)` with the following functional dependencies:
+
+* $AB \rightarrow C$
+* $BC \rightarrow A$
+* $D \rightarrow C$
+* $E \rightarrow A$
+
+**Step 1: Identify determinants and dependent attributes**
+
+| FD | Determinant (X) | Dependent Attributes (Y) |
+| --- | --- | --- |
+| 1 | AB | C |
+| 2 | BC | A |
+| 3 | D | C |
+| 4 | E | A |
+
+**Step 2: Analyze each attribute's influence**
+
+* $AB$ determines $C$, and $BC$ determines $A$. This implies that if we have both $A$ and $B$, we can find $C$.
+* Attribute $D$ directly determines $C$.
+
+**Step 3: Determine superkeys**
+
+To find the number of superkeys, identify combinations that cover all determinants:
+
+| Superkey | Reasoning |
+| --- | --- |
+| A | Contains determinant for FD (4) |
+| B | Contains determinant for FD (1) |
+| AB | Contains determinants for FDs (1) and (2) |
+| AC | Contains determinants for FDs (1) and (3) |
+| BC | Contains determinants for FDs (1) and (2), but not D |
+| AD | Does not contain the determinant for FD (4) |
+| BD | Does not contain the determinant for FD (1) |
+| ABCD | Contains all determinants, including D |
+
+There are **8 superkeys**:
+
+* $A$
+* $B$
+* $AB$
+* $AC$
+* $BC$
+* $AD$ does not qualify as a valid combination
+* $BD$ does not qualify as a valid combination
+* $ABCD$
+
+**Common Pitfalls**
+-------------------
+
+1. **Ignoring transitive dependencies**: If attribute $A$ determines $B$, and attribute $B$ determines $C$, then attribute $A$ also determines $C$. This is known as a transitive dependency.
+2. **Insufficient analysis of determinants and dependent attributes**.
+
+### Quick Summary
+-------------------
+
+* Functional dependencies (FDs) are relationships between attributes in a relation, where one set determines the other.
+* Determinant: The left-hand side of the FD ($X$).
+* Dependent attributes: The right-hand side of the FD ($Y$).
+* To find superkeys, analyze each attribute's influence and determine combinations that cover all determinants.
+
+### Visuals
+-------------
+
+No diagrams or images are required for this topic.
+
+This comprehensive theory note covers all theoretical concepts related to functional dependencies, ensuring you're well-prepared to tackle questions like the one provided in the source question (ID: cs\_2022\_52). Practice with sample problems and analyze each concept carefully to excel in your exams.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/graph-traversal.md b/frontend/public/assets/gate/cs/programming-and-data-structure/graph-traversal.md
new file mode 100644
index 0000000..248c551
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/graph-traversal.md
@@ -0,0 +1,106 @@
+**Graph Traversal**
+====================
+
+**Introduction**
+---------------
+
+Graph traversal refers to the process of visiting each node in a graph or tree data structure, often for the purpose of searching, sorting, or manipulating nodes. Graph traversal algorithms are essential in many applications, including web crawlers, network analysis, and compiler design.
+
+**Core Concepts**
+-----------------
+
+### Types of Traversal
+
+There are two primary types of graph traversal:
+
+* **Preorder Traversal**: Visit a node before visiting its children.
+* **Postorder Traversal**: Visit a node after visiting its children.
+* **Inorder Traversal**: Visit the left subtree, then the current node, and finally the right subtree.
+
+### Graph Representation
+
+Graphs can be represented using various data structures, including:
+
+* **Adjacency Matrix**: A matrix where each entry `a[i][j]` represents the weight of edge between nodes `i` and `j`.
+* **Adjacency List**: A list of edges, where each edge is represented by its source node and target node.
+
+**Key Formulas/Theorems**
+-------------------------
+
+There are no specific formulas or theorems for graph traversal. However, understanding time and space complexity is crucial:
+
+* **Time Complexity:**
+ * Preorder/Postorder traversal: O(n), where n is the number of nodes.
+ * Inorder traversal: O(n) for balanced trees; O(h) for unbalanced trees, where h is the height of the tree.
+* **Space Complexity:** O(h) in recursive implementations or O(w) in iterative implementations, where w is the width of the graph.
+
+**Problem Solving Patterns**
+---------------------------
+
+1. **Use Recursion:**
+
+ * Identify the base case (e.g., an empty tree).
+ * Define the recursive step (e.g., traverse left subtree, then right subtree).
+2. **Implement Iterative Traversal:**
+
+ * Use a stack or queue to store nodes.
+ * Iterate through the nodes and perform operations as needed.
+
+**Examples with Solutions**
+---------------------------
+
+### Preorder Traversal
+
+Suppose we have the following tree:
+
+```
+ 1
+ / \
+ 2 3
+ / \ / \
+4 5 6 7
+```
+
+To traverse this tree in preorder, we start at node 1 and visit its children in order.
+
+```mermaid
+graph TD
+ A[1] --> B[2]
+ A --> C[3]
+ B --> D[4]
+ B --> E[5]
+ C --> F[6]
+ C --> G[7]
+```
+
+The traversal sequence is: 1, 2, 4, 5, 3, 6, 7.
+
+### Postorder Traversal
+
+Similarly, for postorder traversal:
+
+```mermaid
+graph TD
+ A[1] --> B[2]
+ A --> C[3]
+ B --> D[4]
+ B --> E[5]
+ C --> F[6]
+ C --> G[7]
+```
+
+The traversal sequence is: 4, 5, 2, 6, 7, 3, 1.
+
+**Common Pitfalls**
+------------------
+
+* **Not considering edge cases:** Ensure your algorithm handles empty graphs or trees.
+* **Incorrectly implementing iterative traversal:** Use a stack or queue correctly to avoid deadlocks.
+
+**Quick Summary**
+-----------------
+
+* Graph traversal is essential in computer science.
+* Understand types of traversal (preorder, postorder, inorder) and their applications.
+* Learn to represent graphs using adjacency matrices or lists.
+* Develop problem-solving skills using recursion and iterative approaches.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/linked-list.md b/frontend/public/assets/gate/cs/programming-and-data-structure/linked-list.md
new file mode 100644
index 0000000..b903d45
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/linked-list.md
@@ -0,0 +1,148 @@
+# Linked List Theory Note
+=====================================
+
+## Introduction
+---------------
+
+A linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a fundamental data structure in computer science and is widely used in various applications.
+
+## Core Concepts
+-----------------
+
+### Definition
+
+A linked list is defined as an array of records or nodes, where each node contains two fields:
+
+* `value`: The actual value stored in the node.
+* `next`: A reference (or link) to the next node in the sequence.
+
+### Node Representation
+
+In most programming languages, a linked list is implemented using a struct or class with two members: `data` and `next`. The `data` member stores the value of the current node, while the `next` member points to the next node in the sequence.
+
+### Operations on Linked Lists
+
+Linked lists support several operations:
+
+* **Insertion**: Adding new nodes at specific positions.
+* **Deletion**: Removing existing nodes from the list.
+* **Traversal**: Iterating through the list to access or modify data.
+
+## Key Formulas/Theorems
+-------------------------
+
+None applicable for this topic. However, we will cover the time and space complexities of various linked list operations in the problem-solving patterns section.
+
+## Problem Solving Patterns
+-----------------------------
+
+### Traversal
+
+To traverse a linked list, you need to start from the head node and follow each `next` pointer until you reach the end (i.e., `null`).
+
+```mermaid
+graph LR
+A[Head] --> B[Current]
+B --> C[Next]
+C --> D[...]
+D --> E[Tail]
+```
+
+### Insertion
+
+To insert a new node at position `i`, follow these steps:
+
+1. Start from the head and traverse to the node at position `i-1`.
+2. Set the `next` pointer of the node at position `i-1` to point to the new node.
+3. Update the `next` pointer of the new node to point to the original next node.
+
+### Deletion
+
+To delete a node at position `i`, follow these steps:
+
+1. Start from the head and traverse to the node at position `i`.
+2. Set the `next` pointer of the previous node to skip over the current node.
+3. Free the memory occupied by the deleted node.
+
+## Examples with Solutions
+---------------------------
+
+### Example: Traversal
+
+Suppose we have a linked list: `[1, 2, 3, 4]`
+
+```c
+struct Node* head = (struct Node*) malloc(sizeof(struct Node));
+head->value = 1;
+head->next = NULL;
+
+struct Node* node2 = (struct Node*) malloc(sizeof(struct Node));
+node2->value = 2;
+node2->next = NULL;
+head->next = node2;
+
+// ... (similarly for node3 and node4)
+```
+
+To traverse this linked list, we start from the head and follow each `next` pointer:
+
+```c
+struct Node* current = head;
+while(current != NULL) {
+ printf("%d ", current->value);
+ current = current->next;
+}
+```
+
+Output: `1 2 3 4`
+
+### Example: Insertion
+
+Suppose we want to insert a new node with value `5` at position `2`. We follow the steps outlined in the problem-solving patterns section:
+
+```c
+struct Node* node5 = (struct Node*) malloc(sizeof(struct Node));
+node5->value = 5;
+node5->next = NULL;
+
+// Traverse to node2
+struct Node* current = head;
+while(current != NULL && current->next != node2) {
+ current = current->next;
+}
+
+// Set next pointer of node2 to point to node5
+current->next = node5;
+```
+
+### Example: Deletion
+
+Suppose we want to delete the node with value `3`. We follow the steps outlined in the problem-solving patterns section:
+
+```c
+struct Node* current = head;
+while(current != NULL && current->next != node3) {
+ current = current->next;
+}
+
+// Set next pointer of node2 to skip over node3
+current->next = node4;
+```
+
+## Common Pitfalls
+------------------
+
+1. **Traversal**: Don't forget to set the `current` pointer to `NULL` after traversing the linked list.
+2. **Insertion**: Be careful when updating the `next` pointers of adjacent nodes during insertion.
+3. **Deletion**: Always free the memory occupied by deleted nodes.
+
+## Quick Summary
+---------------
+
+* Linked lists are linear collections of data elements where each element points to the next.
+* They support insertion, deletion, and traversal operations.
+* Traversal involves starting from the head and following `next` pointers until reaching the end.
+* Insertion requires updating `next` pointers of adjacent nodes.
+* Deletion involves skipping over deleted nodes by updating `next` pointers.
+
+Note: This theory note covers all concepts tested in the source questions. Students should be able to solve problems related to linked lists using these principles and patterns.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/numerical-ability.md b/frontend/public/assets/gate/cs/programming-and-data-structure/numerical-ability.md
new file mode 100644
index 0000000..150ca0a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/numerical-ability.md
@@ -0,0 +1,72 @@
+**Numerical Ability - Programming and Data Structures**
+=====================================================
+
+### Introduction
+
+Numerical ability is a crucial aspect of programming and data structures, focusing on problem-solving skills with numbers. This section will cover key concepts, formulas, and patterns required to tackle numerical-based questions in the GATE CS exam.
+
+### Core Concepts
+
+#### 1. **Percentages**
+
+* **Discount and Marked Price**: Calculate discounts using the formula: Discount = (Marked Price - Selling Price) / Marked Price
+* **Percentage Change**: Understand that percentage change is calculated as ((New Value - Old Value) / Old Value) \* 100
+
+#### 2. **Simple Interest**
+
+* **Interest Rate**: Use the formula I = PRT, where I is interest, P is principal amount, R is rate of interest, and T is time period
+* **Time Period**: Understand that when comparing interests, time periods must be in the same units
+
+#### 3. **Ratio and Proportion**
+
+* **Direct Proportionality**: Use the formula y = kx, where k is a constant of proportionality
+* **Inverse Proportionality**: Use the formula xy = constant
+
+### Key Formulas/Theorems
+
+* $\boxed{\text{Selling Price} = \frac{\text{Cost Price} + \text{Profit}}{(1 + \text{Taxes Rate})}}$
+* $\boxed{\text{Simple Interest} = PRT}$
+
+### Problem Solving Patterns
+
+* **Algebraic Manipulation**: Apply algebraic techniques to simplify expressions and solve equations
+* **Number System**: Understand the properties of integers, fractions, decimals, and percentages
+* **Logical Reasoning**: Use logic diagrams or Venn diagrams to visualize relationships between variables
+
+### Examples with Solutions
+
+**Example 1:**
+A shopkeeper sells two products at a profit of 10% each. If one product is sold for Rs.100, what is the total profit made?
+
+Selling Price = Cost Price + Profit
+For Product 1: 100 = Cost Price \* (1 + 0.1)
+Cost Price = 90.91
+Profit = Selling Price - Cost Price = 100 - 90.91 = 9.09
+
+**Example 2:**
+A car travels from City A to City B at an average speed of 60 km/h and returns with an average speed of 40 km/h. What is the ratio of the time taken for the return journey to the time taken for the onward journey?
+
+Time = Distance / Speed
+Let distance be x km.
+Onward Journey: Time = x / 60
+Return Journey: Time = x / 40
+
+Ratio of Return to Onward Time = (x / 40) : (x / 60)
+= 3:2
+
+### Common Pitfalls
+
+* **Incorrect Units**: Ensure that all units are consistent when comparing quantities.
+* **Missing Formulas**: Understand the underlying formulas and apply them correctly.
+* **Insufficient Analysis**: Take the time to analyze each problem thoroughly.
+
+### Quick Summary
+
+* Percentages: Discount, Percentage Change
+* Simple Interest: Interest Rate, Time Period
+* Ratio and Proportion: Direct Inverse Proportionality
+* Algebraic Manipulation: Simplify expressions, solve equations
+* Number System: Integers, Fractions, Decimals, Percentages
+* Logical Reasoning: Visualize relationships between variables
+
+This comprehensive theory note covers all essential concepts in Numerical Ability - Programming and Data Structures for the GATE CS exam. Practice problems and more examples are encouraged to reinforce understanding.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/recursion-and-loop.md b/frontend/public/assets/gate/cs/programming-and-data-structure/recursion-and-loop.md
new file mode 100644
index 0000000..80fe90d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/recursion-and-loop.md
@@ -0,0 +1,99 @@
+**Recursion and Loop**
+=======================
+
+**Introduction**
+---------------
+
+Recursion and loops are fundamental concepts in programming that enable repetitive tasks to be performed efficiently. Recursion involves breaking down a problem into smaller sub-problems, while loops allow for iterative execution of code segments.
+
+**Core Concepts**
+-----------------
+
+### Recursion
+
+* **Definition**: A function that calls itself until it reaches a base case.
+* **Key Properties**:
+ * **Recurrence relation**: The solution to the problem is expressed in terms of smaller sub-problems.
+ * **Base case**: A trivial instance of the problem that can be solved directly.
+ * **Inductive step**: The process of combining solutions to sub-problems to obtain a solution for the original problem.
+
+### Loops
+
+* **Definition**: Control structures that allow for repetitive execution of code segments.
+* **Types**:
+ * **For loops**: Used for iterating over a sequence or collection of data.
+ * **While loops**: Used for repeating a set of instructions while a condition is true.
+ * **Do-while loops**: Similar to while loops, but the loop body is executed at least once.
+
+### Loop Control Statements
+
+* **Break**: Terminates the execution of a loop prematurely.
+* **Continue**: Skips to the next iteration of a loop.
+* **Next**: Jumps to the next statement after the current one (not typically used in modern programming).
+
+**Key Formulas/Theorems**
+-------------------------
+
+None applicable.
+
+**Problem Solving Patterns**
+-----------------------------
+
+### Recursion
+
+* **Identify the recurrence relation**: Express the problem as a function of smaller sub-problems.
+* **Determine the base case**: Find a trivial instance of the problem that can be solved directly.
+* **Implement the inductive step**: Combine solutions to sub-problems to obtain a solution for the original problem.
+
+### Loops
+
+* **Choose the correct loop type**: Select a suitable loop structure based on the problem requirements (e.g., for, while, do-while).
+* **Set up the loop control variables**: Initialize and update variables as necessary to control the loop iteration.
+* **Implement the loop body**: Write code that is executed repeatedly within the loop.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Recursive Factorial Calculation
+
+```c
+int factorial(int n) {
+ if (n == 0 || n == 1)
+ return 1;
+ else
+ return n * factorial(n - 1);
+}
+```
+
+### Example 2: Loop-Based Summation
+
+```c
+#include
+
+int main() {
+ int sum = 0, i;
+
+ for (i = 1; i <= 10; i++)
+ sum += i;
+
+ printf("%d", sum);
+
+ return 0;
+}
+```
+
+**Common Pitfalls**
+-------------------
+
+* **Recursion**: Avoiding the base case or not handling edge cases properly can lead to stack overflows.
+* **Loops**: Failing to initialize loop control variables correctly or neglecting to update them within the loop body can result in infinite loops.
+
+**Quick Summary**
+----------------
+
+| Topic | Key Points |
+| --- | --- |
+| Recursion | Break down problems into smaller sub-problems, base case, inductive step |
+| Loops | For loops, while loops, do-while loops, loop control statements (break, continue, next) |
+
+Note: This is a starting point for creating comprehensive theory notes. You can expand on the topics and include more examples to make it more exhaustive and helpful.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/recursion.md b/frontend/public/assets/gate/cs/programming-and-data-structure/recursion.md
new file mode 100644
index 0000000..8abbd80
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/recursion.md
@@ -0,0 +1,157 @@
+**Recursion**
+================
+
+### Introduction
+
+Recursion is a fundamental concept in computer science where a function calls itself repeatedly until it reaches a base case that stops the recursion. It's a powerful tool for solving problems that have a recursive structure, such as tree traversals, sorting algorithms, and more.
+
+### Core Concepts
+
+#### Recursion vs Iteration
+
+Recursion and iteration are two different approaches to solve problems in programming. While iteration uses loops to repeat a set of instructions, recursion uses function calls to break down the problem into smaller sub-problems.
+
+```mermaid
+graph LR
+A[Iteration] --> B[Loops]
+C[Recursion] --> D[Function Calls]
+```
+
+#### Base Case
+
+The base case is the condition that stops the recursion. It's a critical component of recursive functions, as it ensures that the function terminates eventually.
+
+**Theorem:** A recursive function must have a base case to avoid infinite recursion.
+
+#### Recursive Function Structure
+
+A typical recursive function has two components:
+
+1. The recursive call: This is where the function calls itself with smaller inputs until it reaches the base case.
+2. The solution: This is where the function returns the final result or solution to the problem.
+
+**Example:**
+
+```c
+int factorial(int n) {
+ if (n == 0) { // Base Case
+ return 1;
+ } else {
+ return n * factorial(n-1); // Recursive Call
+ }
+}
+```
+
+### Key Formulas/Theorems
+
+* There are no specific formulas for recursion, but understanding the recursive function structure and base case is essential.
+
+### Problem Solving Patterns
+
+When solving problems using recursion, follow these steps:
+
+1. Identify the problem's recursive structure.
+2. Determine the base case(s).
+3. Break down the problem into smaller sub-problems (recursive calls).
+4. Combine the solutions to the sub-problems to obtain the final result.
+
+**Example:**
+
+Consider a binary tree where each node has two children, left and right. Write a recursive function to traverse the tree in pre-order (root -> left -> right).
+
+```c
+typedef struct Node {
+ int data;
+ struct Node* left;
+ struct Node* right;
+} Node;
+
+void preorder(Node* root) {
+ if (root == NULL) { // Base Case
+ return;
+ }
+ printf("%d ", root->data); // Print Root
+ preorder(root->left); // Recursive Call for Left Subtree
+ preorder(root->right); // Recursive Call for Right Subtree
+}
+```
+
+### Examples with Solutions
+
+1. **Factorial Function:**
+
+```c
+int factorial(int n) {
+ if (n == 0) { // Base Case
+ return 1;
+ } else {
+ return n * factorial(n-1); // Recursive Call
+ }
+}
+
+// Test the function
+int main() {
+ int result = factorial(5);
+ printf("Factorial of 5: %d\n", result);
+ return 0;
+}
+```
+
+2. **Binary Search in a Sorted Array:**
+
+```c
+int binarySearch(int arr[], int n, int target) {
+ if (n == 0 || arr[0] > target) { // Base Case
+ return -1; // Target not found
+ } else if (arr[n-1] < target) { // Target is out of range
+ return -1;
+ }
+
+ if (arr[0] == target) {
+ return 0; // Target at the beginning of array
+ }
+
+ int mid = n / 2;
+ if (arr[mid] == target) {
+ return mid + 1; // Target found
+ } else if (target < arr[mid]) { // Search in left half
+ return binarySearch(arr, mid, target);
+ } else { // Search in right half
+ int index = binarySearch(arr + mid + 1, n - mid - 1, target);
+ if (index != -1) {
+ return index + mid + 1; // Target found
+ }
+ }
+
+ return -1; // Target not found
+}
+
+// Test the function
+int main() {
+ int arr[] = {2, 5, 8, 12, 16};
+ int n = sizeof(arr) / sizeof(arr[0]);
+ int target = 12;
+ int result = binarySearch(arr, n, target);
+ if (result != -1) {
+ printf("Target found at index %d\n", result);
+ } else {
+ printf("Target not found\n");
+ }
+ return 0;
+}
+```
+
+### Common Pitfalls
+
+* **Infinite Recursion:** Failing to include a base case can lead to infinite recursion, causing the function to call itself indefinitely.
+* **Incorrect Recursive Call Order:** Incorrectly ordering recursive calls can result in incorrect solutions or even infinite recursion.
+
+### Quick Summary
+
+| Topic | Description |
+| --- | --- |
+| Recursion | Function calls itself repeatedly until it reaches a base case. |
+| Base Case | The condition that stops the recursion, ensuring the function terminates eventually. |
+| Recursive Function Structure | Typically consists of a recursive call and a solution component. |
+
+This comprehensive theory note covers all theoretical concepts, formulas, and insights required to solve the provided source questions and similar future questions on recursion.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/sorting-algorithm.md b/frontend/public/assets/gate/cs/programming-and-data-structure/sorting-algorithm.md
new file mode 100644
index 0000000..c1c9082
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/sorting-algorithm.md
@@ -0,0 +1,129 @@
+**Sorting Algorithm**
+======================
+
+**Introduction**
+---------------
+
+A sorting algorithm is a technique for arranging elements of an array or list in a specific order, either ascending or descending. Sorting algorithms are essential in computer science and programming, as they enable efficient processing and analysis of data.
+
+**Core Concepts**
+-----------------
+
+### Types of Sorting Algorithms
+
+There are several types of sorting algorithms, including:
+
+* **Comparison-based sorting**: These algorithms rely on comparing elements to determine their order. Examples include Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, and Quick Sort.
+* **Non-comparison-based sorting**: These algorithms do not use comparisons to sort the data. Examples include Radix Sort and Counting Sort.
+
+### Key Characteristics
+
+When evaluating a sorting algorithm, consider the following characteristics:
+
+* **Time complexity**: The amount of time taken by the algorithm to sort the array.
+* **Space complexity**: The amount of memory used by the algorithm.
+* **Stability**: Whether the algorithm maintains the relative order of equal elements.
+* **Adaptability**: Whether the algorithm is suitable for large or small datasets.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Time Complexity
+
+The time complexity of a sorting algorithm can be expressed using Big O notation:
+
+| Algorithm | Best-case | Average-case | Worst-case |
+| --- | --- | --- | --- |
+| Bubble Sort | O(n) | O(n^2) | O(n^2) |
+| Selection Sort | O(n^2) | O(n^2) | O(n^2) |
+| Insertion Sort | O(n) | O(n^2) | O(n^2) |
+| Merge Sort | O(n log n) | O(n log n) | O(n log n) |
+| Quick Sort | O(n log n) | O(n log n) | O(n^2) |
+
+### Space Complexity
+
+The space complexity of a sorting algorithm can be expressed using Big O notation:
+
+| Algorithm | Space Complexity |
+| --- | --- |
+| Bubble Sort | O(1) |
+| Selection Sort | O(1) |
+| Insertion Sort | O(1) |
+| Merge Sort | O(n) |
+| Quick Sort | O(log n) |
+
+**Problem Solving Patterns**
+---------------------------
+
+### Analyzing the Source Question
+
+The source question (cs_2021-M_34) involves determining which algorithm uses the least number of comparisons to sort an array in ascending order. To solve this, we need to consider the characteristics of each algorithm and their time complexities.
+
+* **Insertion Sort**: This algorithm has a best-case time complexity of O(n), making it suitable for already sorted or nearly sorted arrays.
+* **Merge Sort** and **Quick Sort**: These algorithms have average-case time complexities of O(n log n), but may require more comparisons than Insertion Sort in certain scenarios.
+
+### Quick Sort Example
+
+Consider the following example:
+
+| Array | 23, 32, 45, 69, 72, 73, 89, 97 |
+
+To sort this array using Quick Sort with last element as pivot:
+
+1. Choose the last element (97) as the pivot.
+2. Partition the array around the pivot: [23, 32, 45, 69, 72, 73], [89].
+3. Recursively apply the algorithm to each partition.
+
+The number of comparisons required for this example would be:
+
+* Best-case: O(n)
+* Average-case: O(n log n)
+
+However, in certain scenarios, Quick Sort may require more comparisons than Insertion Sort.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Insertion Sort
+
+Given array: [5, 2, 8, 3]
+
+| Iteration | Array |
+| --- | --- |
+| 1 | [2, 5, 8, 3] |
+| 2 | [2, 3, 5, 8] |
+
+Number of comparisons: 4
+
+### Example 2: Merge Sort
+
+Given array: [5, 2, 8, 3]
+
+| Iteration | Array |
+| --- | --- |
+| 1 | [2], [5, 8, 3] |
+| 2 | [2, 3], [5, 8] |
+
+Number of comparisons: 6
+
+**Common Pitfalls**
+------------------
+
+* **Misunderstanding the time complexity**: Failing to consider the best-case and average-case scenarios.
+* **Ignoring space complexity**: Neglecting the memory requirements of an algorithm.
+
+**Quick Summary**
+-----------------
+
+* Sorting algorithms have different characteristics, including time complexity, space complexity, stability, and adaptability.
+* Insertion Sort has a best-case time complexity of O(n), making it suitable for already sorted or nearly sorted arrays.
+* Merge Sort and Quick Sort have average-case time complexities of O(n log n).
+* Analyze the source question to determine which algorithm uses the least number of comparisons.
+
+Visuals:
+```mermaid
+graph LR
+ A[Start] --> B[Insertion Sort]
+ C[Merge Sort] --> D[Quick Sort]
+```
+Note: The above Mermaid diagram is a simple representation and not intended for complex sorting algorithm visualizations.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/stack-operation.md b/frontend/public/assets/gate/cs/programming-and-data-structure/stack-operation.md
new file mode 100644
index 0000000..dcd0af7
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/stack-operation.md
@@ -0,0 +1,79 @@
+**Stack Operations**
+=====================
+
+**Introduction**
+---------------
+
+A stack is a linear data structure that follows the Last In First Out (LIFO) principle, where elements are added and removed from the top of the stack. This note covers the theoretical concepts, formulas, and insights required to solve questions related to stack operations.
+
+**Core Concepts**
+-----------------
+
+* A stack can be thought of as a collection of plates stacked on top of each other.
+* The top plate is always accessible and can be removed or added to.
+* When an element is pushed onto the stack, it becomes the new top element.
+* When an element is popped from the stack, the top element is removed.
+
+**Key Formulas/Theorems**
+-------------------------
+
+No specific formulas are required for this topic. However, understanding the LIFO principle and how stacks work is essential.
+
+**Problem Solving Patterns**
+----------------------------
+
+1. **Top Element Access**: To access or remove the top element of a stack, you can use the `pop()` operation.
+2. **Element Insertion**: To add an element to the top of a stack, you can use the `push()` operation.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1
+
+Consider the following sequence of operations on an empty stack:
+
+* `push(54)`
+* `push(52)`
+* `pop()`
+* `push(55)`
+* `push(62)`
+* `s = pop()`
+
+The value of `s` is `62`.
+
+Solution: The `pop()` operation removes the top element, which in this case is `62`. Therefore, the value of `s` is `62`.
+
+### Example 2
+
+Consider the following sequence of operations on an empty queue:
+
+* `enqueue(21)`
+* `enqueue(24)`
+* `dequeue()`
+* `enqueue(28)`
+* `enqueue(32)`
+* `q = dequeue()`
+
+The value of `q` is `24`.
+
+Solution: The `dequeue()` operation removes the front element, which in this case is `21`. However, since we are interested in finding the value of `q`, and based on the given solution that `q` equals `24`, it implies that after removing 21 from queue, 24 was at the top (head) before another number was enqueued.
+
+### Real-World Scenario
+
+Suppose you have a stack-based system for managing task priorities. You want to add new tasks to the top of the priority list and remove tasks from the top when they are completed. How would you implement this using stacks?
+
+Solution: You can use the `push()` operation to add tasks to the top of the priority list and the `pop()` operation to remove tasks from the top.
+
+**Common Pitfalls**
+-------------------
+
+1. **Confusing Stacks with Queues**: Be aware that stacks follow the LIFO principle, whereas queues follow the First In First Out (FIFO) principle.
+2. **Incorrectly Implementing Operations**: Make sure you understand how to correctly implement stack operations like `push()` and `pop()`.
+3. **Ignoring Edge Cases**: Always consider edge cases when solving problems related to stacks.
+
+**Quick Summary**
+----------------
+
+* A stack is a linear data structure that follows the LIFO principle.
+* Elements are added and removed from the top of the stack using `push()` and `pop()` operations.
+* Be aware of common pitfalls like confusing stacks with queues and incorrectly implementing operations.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/programming-and-data-structure/trees-binary-search-tree.md b/frontend/public/assets/gate/cs/programming-and-data-structure/trees-binary-search-tree.md
new file mode 100644
index 0000000..492b647
--- /dev/null
+++ b/frontend/public/assets/gate/cs/programming-and-data-structure/trees-binary-search-tree.md
@@ -0,0 +1,72 @@
+**Binary Search Tree (BST)**
+==========================
+
+### Introduction
+
+A Binary Search Tree (BST) is a data structure where each node has at most two children (i.e., left child and right child). Each node represents a key, and for any given node, all the keys in its left subtree are less than the key in the node, while all the keys in its right subtree are greater than the key in the node. This property makes BSTs useful for efficient searching, inserting, and deleting elements.
+
+### Core Concepts
+
+* **Node**: A node represents a key-value pair, where the key is stored in the node, and the value can be any data.
+* **Root Node**: The root node is the topmost node in the tree. It has no parent node.
+* **Left Child**: A node's left child is the node that is to its left.
+* **Right Child**: A node's right child is the node that is to its right.
+* **Empty Tree**: An empty tree has no nodes.
+
+### Key Formulas/Theorems
+
+The time complexity of operations in a BST depends on the height of the tree. The optimal case for a BST is when it is balanced, meaning the height of the tree is log(n), where n is the number of elements in the tree.
+
+* **Time Complexity**:
+ * Search: O(log n) (amortized)
+ * Insertion: O(log n)
+ * Deletion: O(log n)
+
+### Problem Solving Patterns
+
+Based on the source questions, we can identify two main problem-solving patterns:
+
+1. **Identify the Maximum Element**: In a BST, the maximum element is always at the rightmost leaf node.
+2. **Identify the Smaller Element**: To find an element smaller than a given element, traverse down the tree from the root until you reach a node with a value less than or equal to the target value.
+
+### Examples with Solutions
+
+**Example 1: Find the Maximum Element**
+
+Suppose we have a BST:
+
+ 5
+ / \
+ 3 7
+ / \ \
+ 2 4 8
+
+To find the maximum element, we start at the root node (5). Since the right child of the root is 7, which is greater than the root value, we move to the right child. Then, since there are no more nodes to the right, we return the current node's value, which is 8.
+
+**Example 2: Find an Element Smaller Than a Given Value**
+
+Suppose we have a BST:
+
+ 5
+ / \
+ 3 7
+ / \ \
+ 2 4 8
+
+We want to find the element smaller than 5. We start at the root node (5). Since the left child of the root is 3, which is less than the root value, we move to the left child. Then, since there are no more nodes with a value less than the target value, we return the current node's value, which is 2.
+
+### Common Pitfalls
+
+* **Unbalanced Tree**: A tree that is not balanced can lead to poor time complexities for search, insertion, and deletion operations.
+* **Incorrect Comparison**: When traversing the tree, make sure to compare values correctly. In a BST, all elements in the left subtree of a node are less than the node's value, while all elements in the right subtree are greater.
+
+### Quick Summary
+
+* Binary Search Tree (BST): A data structure where each node has at most two children.
+* Time Complexity: O(log n) for search, insertion, and deletion operations when the tree is balanced.
+* Key Concepts:
+ * Node
+ * Root Node
+ * Left Child
+ * Right Child
+ * Empty Tree
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/1/data.json b/frontend/public/assets/gate/cs/questions/2021-M/1/data.json
new file mode 100644
index 0000000..0f32f1d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/1/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "1",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 1 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251564 \n \nLet G be a group of order 6, arid H be a subgroup of G such that 1 < | H | < 6. Which one of the \nfollowing options is correct? \n \n(A) Both G and H may not be cyclic. \n \n \n(B) Both G and H are always cyclic. \n \n(C) G is always cyclic, but H may not be cyclic. \n \n(D) G may not be cyclic, but H is always cyclic. \nAns. \nD",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/1/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/1/exp.webp
new file mode 100644
index 0000000..8dd11bc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/1/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/1/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/1/q.webp
new file mode 100644
index 0000000..7253285
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/1/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/10/data.json b/frontend/public/assets/gate/cs/questions/2021-M/10/data.json
new file mode 100644
index 0000000..3a5e13f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/10/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "10",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 10 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251567 \n \nConsider the following ANSI C program.\n \n \n \n#include \n \n \n \nint main()\n \n \n \n{\n \n \n \n \nint i , j,count;\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n11\n\ncount=0;\n \n \n \n \ni=0;\n \n \n \n \nfor(j=-3;j<=3;j++) \n \n \n \n{ \n \n \n \n \n \nif(j >= 0)&&(i++))\n \n \n \n \n \ncount=count+j;\n \n \n \n \n}\n \n \n \n \ncount=count+i;\n \n \n \n \nprintf(\"%d\",count);\n \n \n \n \nreturn 0;\n \n \n \n} \n \nWhich one of the following options is correct?\n \n \n(A) The program will compile successfully and output 8 when executed. \n \n(B) The program will not compile successfully.\n \n \n(C) The program will compile successfully and output 10 when executed. \n \n(D) The program will compile successfully and output 13 when executed. \nAns. C \nSol. \nFor \n3 to \n1\nj\nj\n= \u2212\n= \u2212\nIf \n((\n00) & &(\n))\nj\ni\n>\n+ +\n will result in false\nHence neither \nI\n nor count null change, count = 0, \n0\ni\n =\nFor \n0\nj\n\u2212=\n \n(\n0)\nj\n >=\n result in TRUE hence \ni\n + +\n will execute\n1\nj\n =\n \n(\n0) & &(\n)\nj\ni\n>=\n+ + =\n TRUE\nHence, count\n0 1 1\n=\n+ =\n and \ni\n + +\n2\nj\n =\n \n(\n0) & &(\n)\nj\ni\n>=\n+ + =\n TRUE\nHence count\n1 2\n3\n= +\n=\n and \ni\n + +\n3\nj\n =\n \n(\n0) & &(\n)\nj\ni\n\u2265=\n+ + =\n TRUE\nHence, count\n3 3\n6\n= + =\n and \ni\n + +\nAfter exiting loop\nCount \n=\n count\n i\n+\n6\n4\n10\n=\n+\n=",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/10/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/10/exp.webp
new file mode 100644
index 0000000..2087d2b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/10/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/10/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/10/q.webp
new file mode 100644
index 0000000..3036e18
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/10/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/11/data.json b/frontend/public/assets/gate/cs/questions/2021-M/11/data.json
new file mode 100644
index 0000000..931c997
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/11/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "11",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 11 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251551 \n \nConsider the following sequence of operations on an empty stack.\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n12\n\npush(54); push(52): pop(); push(55); push(62); s = pop(); \n \nConsider the following sequence of operations on an empty queue. \n \n \nenqueue(21); enqueue (24); dequeue(); enqueue(28); enqueue(32): q = dequeue(); \n \nThe value of s +q is ________. \nAns. \n86 \nSol.\n \ns\n =\npop() will return top of stack value, i.e. \n \n \n \n62\ns\n =\nq\n =\ndequeue () will return head of queue value\n24\nq\n =\n9\n62\n24\n86\ns\n +\n=\n+\n=",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/11/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/11/q.webp
new file mode 100644
index 0000000..7ea7be7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/11/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/12/data.json b/frontend/public/assets/gate/cs/questions/2021-M/12/data.json
new file mode 100644
index 0000000..2c8e8a4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/12/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "12",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 12 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251573 \n \nA relation R is said to be circular if aRb and bRc together imply cRa. Which of the following options \nis/are correct? \n \n(A) If a relation S is transitive and circular, then S is an equivalence relation. \n \n(B) If a relation S is reflexive and circular, then S is an equivalence relation. \n \n(C) If a relation S is circular and symmetric, then S is an equivalence relation. \n \n(D) If a relation S is reflexive and symmetric, then S is an equivalence relation. \nAns. \nB \nSol.\n \nIf S is reflexive and cyclic then S will be equivalence relation.\nProof: S is reflexive there for element a,b,c (a,a), (b,b), (c,c) belongs to S\nIf (a,b) belongs to S then (b,a) must belong to S, as (a,b) and (b,b) belongs to S therefore, S is \nsymmetric.\nIf (a,b) and (b,c) belongs to S then because its cyclic (c,a) must belong to S and S is symmetric too, \nhence (a,c) also belongs to S and S is Equivalence Relation",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/12/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/12/q.webp
new file mode 100644
index 0000000..f98f9e6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/12/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/13/data.json b/frontend/public/assets/gate/cs/questions/2021-M/13/data.json
new file mode 100644
index 0000000..3c3f4cc
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/13/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "13",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 13 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251576 \n \nConsider the following pseudocode, where S is a semaphore initialized to 5 in line#2 and counter is a \nshared variable initialized to 0 in line#1. Assume that the increment operation in line#7 is not atomic. \n \n1. int counter = 0; \n \n2. Semaphore S = init(5); \n \n3. void parop(void) \n \n4. { \n \n5. wait(S); \n \n6. wait(S); \n \n7. counter++;\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n13\n\n8. signal(S); \n \n9. signal(S); \n \n10. } \n \nIf live threads execute the function parop concurrently, which of the following program behavior(s) \nis/are possible? \n \n(A) The value of counter is 0 after all the threads successfully complete the execution of parop. \n \n(B) The value of counter is 1 after all the threads successfully complete the execution of parop. \n \n(C) There is a deadlock involving all the threads. \n \n(D) The value of counter is 5 after all the threads successfully complete the execution of parop. \nAns. \nB, C, D",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/13/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/13/q.webp
new file mode 100644
index 0000000..b54e3cc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/13/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/14/data.json b/frontend/public/assets/gate/cs/questions/2021-M/14/data.json
new file mode 100644
index 0000000..c9be66b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/14/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "14",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 14 \n \n \n \n \n \n \n \nNAT (2M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251585 \nConsider a computer system consisting of registers R1, R2, R3 and MEMORY[X] denotes the content at \nthe memory location of X. Assume memory is byte addressable\nInstruction \nSemantics \nInstruction size (bytes)\nMOV R1 (5000) \nR1\n\u2190\n M[5000] \n4\nMOV R2 (R3) \nR2\n\u2190\n M[R3] \n4\nADD R2,R1 \nR2\n\u2190\nR1+R2 \n2\nMOV(R3) \nM[R3]\n\u2190\n R2 \n4\nINC R3 \nR3\n\u2190\n R3+1 \n2\nDEC R1 \nR1\n\u2190\n R1-1\n \n2\nBNEZ 1004 \nBranch if non zero to \nthe absolute address \n2\nHALT \nStop \n1\nAssume that the content of the memory location 5000 is 10 and the content of the register R3 is 3000. \nThe content of each of the memory locations from 3000 to 3010 is 50. The instruction sequence starts \nfrom the memory location 1000. All the numbers arc in decimal format. Assume that the memory is byte \naddressable. \nAfter the execution of the program, the content of memory location 3010 is _______. \nAns. \n50\n \nQuestion 15 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251536 \n \nLet the representation of a number in base 3 be 210. What is the hexadecimal representation of the \nnumber? \n \n(A) D2 \n(B) 528 \n(C) 21 \n(D) 15 \nAns. \nD\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n14\n",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nCorrect the given number representation \ndecimal\n representation\n3\n10\n(210)\n(?)\n\u2192\n2\n1\n0\n2 3\n1 3\n0 3\n\u00d7\n+ \u00d7\n+ \u00d7\n10\n18 3\n(21)\n+ =\nNow convert decimal representation into hexadecimal representation\n10\n16\n(21)\n(?)\n\u2192\n16\n21\n1\n5\n\n16\n(15)\nHence, the correct option is (D)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/14/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/14/exp.webp
new file mode 100644
index 0000000..f32d7f8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/14/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/14/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/14/q.webp
new file mode 100644
index 0000000..a13c6c0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/14/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/16/data.json b/frontend/public/assets/gate/cs/questions/2021-M/16/data.json
new file mode 100644
index 0000000..2b952e1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/16/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "16",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 16 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251558 \nConsider a 3-bit counter, designed using T flip-flops, as shown below:\nQ\nP\nQ\nT\nR\nQ\nR\nT\nP\nP\nT\nR\nClock \nPulse\n'\nP\n'\nR\n'\nQ\nAssuming the initial state of the counter given by PQR as 000, what are the next three states? \n(A) 001, 010, 111 \n(B) 011, 101, 000 \n(C) 001, 010, 000 \n(D) 011, 101, 111 \nAns. \nB",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n1. \np\nP\nT\nP\n+\n =\n\u2295\nR\nP\n=\n\u2295\n2. \nQ\nQ\nT\nQ\n+\n =\n\u2295\nP\nQ\n=\n\u2295\n\uf073\uf075\nQ\nP\nQ\n=\n\u2295\n3. \nR\nR\nT\nR\n+\n =\n\u2295\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n15\n\nQ\nR\n=\n\u2295\nR\nQ\nR\n=\n\u2295\nP\nQ\nR\nP\nQ\nR\n\u0002\n\u0002\n\u0002\n0\n0\n0\n0\n1\n1\n0\n0\n1\n1\n1\n0\n0\n1\n0\n0\n0\n0\n0\n1\n1\n1\n0\n1\n1\n0\n0\n1\n0\n1\n1\n0\n1\n0\n0\n0\n1\n1\n0\n1\n1\n0\n1\n1\n1\n0\n1\n1\n\nSo, next three step\n000\n011\n101\n000\n\u2192\n\u2192\n\u2192\nHence, the correct option is (B)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/16/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/16/exp.webp
new file mode 100644
index 0000000..616e8c4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/16/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/16/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/16/q.webp
new file mode 100644
index 0000000..e0b3b2f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/16/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/17/data.json b/frontend/public/assets/gate/cs/questions/2021-M/17/data.json
new file mode 100644
index 0000000..d7853f9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/17/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "17",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "A, B, C \nSol. \nGiven :\n(\n)(\n)(\n)\nF\nx\ny\nz x\ny y\nz\n=\n+\n+\n+\n+\n(0,2,4,5,6)\nF\nm\n= \u03c0\n(1,3,7)\nF\nm\n= \u03c0\n(0,2,4,5,6)\nF\nm\n=\n \uf0e5\n(A) \nxy\nyz\nxyz\n+\n+\n(0,2,4,5,6)\nm\n\uf0e5\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n16\n\nIt is correct\n(B) \n(\n)(\n)\nx\nz\ny\nz\n+\n+\n(1,3,7)\nm\n\u03c0\nIt is correct\n(C) \nxy\nz\n+\n(0,2,4,5,6)\nm\n\uf0e5\nIt is correct\n(D) \n(\n)(\n)(\n)\nx\ny\nz x\ny\ny\nz\n+\n+\n+\n+\n(1,3,2)\nm\n\u03c0\nIt is incorrect",
+ "question_text": "Question 17 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251572 \n \nConsider the following Boolean expression.\n(\n)\n(\n)(\n)\nF\nX\nY\nZ\nX\nY\nY\nZ\n=\n+\n+\n+\n+\nWhich of the following Boolean expressions is/are equivalent to \nF\n (complement of \nF\n)?\n(A) \nXY\nYZ\nXYZ\n+\n+\n \n \n(B) \n(\n)(\n)\nX\nZ\nY\nZ\n+\n+\n(C) \nXY\nZ\n+\n \n \n \n(D) \n(\n)(\n)(\n)\nX\nY\nZ\nX\nY\nY\nZ\n+\n+\n+\n+",
+ "answer_text": "A, B, C \nSol. \nGiven :\n(\n)(\n)(\n)\nF\nx\ny\nz x\ny y\nz\n=\n+\n+\n+\n+\n(0,2,4,5,6)\nF\nm\n= \u03c0\n(1,3,7)\nF\nm\n= \u03c0\n(0,2,4,5,6)\nF\nm\n=\n \uf0e5\n(A) \nxy\nyz\nxyz\n+\n+\n(0,2,4,5,6)\nm\n\uf0e5\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n16\n\nIt is correct\n(B) \n(\n)(\n)\nx\nz\ny\nz\n+\n+\n(1,3,7)\nm\n\u03c0\nIt is correct\n(C) \nxy\nz\n+\n(0,2,4,5,6)\nm\n\uf0e5\nIt is correct\n(D) \n(\n)(\n)(\n)\nx\ny\nz x\ny\ny\nz\n+\n+\n+\n+\n(1,3,2)\nm\n\u03c0\nIt is incorrect",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/17/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/17/q.webp
new file mode 100644
index 0000000..421eca0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/17/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/18/data.json b/frontend/public/assets/gate/cs/questions/2021-M/18/data.json
new file mode 100644
index 0000000..0a186ea
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/18/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "18",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 18 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251550 \n \nConsider the following expression\n3\n2\n22\n4\nlim\n3\nx\nx\nx\n\u2192\u2212\n+\n\u2212\n+\n\nThe value of above expression (rounded to 2 decimal places) is ______. \nAns. 0.25 \nSol.\n \nGiven :\nlim\n2x\n22\n4\nx\n3\nx\n3\n+\n\u2212\n=\n\u2192\u2212\n+\n4\n22\n4\n3\n3\n\u2212+\n\u2212\n=\n\u2212+\n4\n4\n3\n3\n0\n0\n\u2212\n= \u2212+\n=\nApplying \u201cL\u2019 Hospital Rule:\n2\n1 2\nlim\nlim\n1\n2x\n22\nx\n3\nx\n3\n1 0\n2x\n22\n\u00d7\n+\n=\n=\n\u2192\u2212\n\u2192\u2212\n+\n+\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n17\n\n1\n6\n22\n1\n16\n1\n0.25\n4\n=\n\u2212+\n\n=\n=\n=\nHence that correct Ans is 0.25",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/18/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/18/q.webp
new file mode 100644
index 0000000..2fe2d9d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/18/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/19/data.json b/frontend/public/assets/gate/cs/questions/2021-M/19/data.json
new file mode 100644
index 0000000..24505da
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/19/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "19",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "B\n \nQuestion 20 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251575 \n \nConsider two hosts P and Q connected through a router R. The maximum transfer unit (MTU) value of \nthe link between P and R is 1500 bytes, and between R and Q is 820 bytes. \n \nA TCP segment of size 1400 bytes was transferred from P to Q through R, with IP identification value \nas 0x1234. Assume that the IP header size is 20 bytes. Further, the packet is allowed to be fragmented, \ni.e., Don't Fragment (DF) flag in the IP header is not set by P. \n \nWhich of the following statements is/are correct? \n \n(A) TCP destination port can be determined by analysing only the second fragment. \n \n(B) Two fragments are created at R and the IP datagram size carrying the second fragment is 620 bytes. \n \n(C) If the second fragment is lost, R will resend the fragment with the IP identification value 0x1234. \n \n(D) If the second fragment is lost, P is required to resend the whole TCP segment. \n \nB, D",
+ "question_text": "Question 19 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251531\nSuppose that \n1\nL\n is regular language and \n2\nL\n is context free language. Which one of the following\nlanguage is NOT necessarily contexts free?\n(A) \n1\n2\nL\nL\n\u222a\n \n(B) \n1\n2\nL\nL\n\u2212\n \n(C) \n1\n2\nL\nL\n\u2229\n \n(D) \n1\n2\n.\nL L",
+ "answer_text": "B\n \nQuestion 20 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251575 \n \nConsider two hosts P and Q connected through a router R. The maximum transfer unit (MTU) value of \nthe link between P and R is 1500 bytes, and between R and Q is 820 bytes. \n \nA TCP segment of size 1400 bytes was transferred from P to Q through R, with IP identification value \nas 0x1234. Assume that the IP header size is 20 bytes. Further, the packet is allowed to be fragmented, \ni.e., Don't Fragment (DF) flag in the IP header is not set by P. \n \nWhich of the following statements is/are correct? \n \n(A) TCP destination port can be determined by analysing only the second fragment. \n \n(B) Two fragments are created at R and the IP datagram size carrying the second fragment is 620 bytes. \n \n(C) If the second fragment is lost, R will resend the fragment with the IP identification value 0x1234. \n \n(D) If the second fragment is lost, P is required to resend the whole TCP segment. \n \nB, D",
+ "explanation_text": "Sol.\n \nThe Fragmentation will be taking place at R router only. First Fragment will be of 820 B of which 800B \nwill be the data, total data size was 1400 B, therefore 2\nnd\n fragment will of size 1400-800 +20(IP Header) \n= 620 B\nIf any fragment get lost, complete data is sent again by the Transport Layer \nQuestion 21 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251568 \n \nConsider the following language \n \nL\n = {\n w\n\u2208\n{0,1}*| \nw\n ends with the substring 011} \n \nWhich of the following deterministic finite automata represents the given language\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n18\n\n0\n1\n1\n0\n1\n1\n0\nq\n1\nq\n2\nq\n3\nq\n0\n0\n(A)\n0,1\n1\n0\n0\n1\n1\n0\nq\n1\nq\n2\nq\n3\nq\n0\n(B)\n0\n1\n1\n0\n1\n1\n0\nq\n1\nq\n2\nq\n3\nq\n0\n0\n(C)\n0\n0\n1\n0\n1\n1\n0\nq\n1\nq\n2\nq\n3\nq\n0\n1\n(D) \n \nAns.\n \nD\n \nQuestion 22 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251571 \n \nAn articulation point in a connected graph is a vertex such that removing the vertex and its incident \nedges disconnects the graph into two or more connected components. \n Let T be a DFS tree obtained by doing DFS in a connected undirected graph G. Which of the following \noptions in/are correct. \n(A) Root of T can never be an articulation point in G. \n(B) A leaf of T can be an articulation point in G. \n(C) If u is an articulation point in G such that x is an ancestor of u and y is a descendent of v in T then \nall paths from x to y in G must pass through u \n(D) Root of T is an articulation point in G, if and only if it has 2 or more children. \nAns.\n \nD\n \nQuestion 23 \n \n \n \n \n \n \n \nNAT (2M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251582 \n \nConsider the following matrix.\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n19\n\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n0\n1\n1\n1\n1\n0\n1\n1\n1\n1\n0\n1\n1\n1\n1\n0\n\n\nThe largest eigenvalue of the matrix is_____. \nAns. \n3 \nSol. \nGiven :\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n=\n \uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\u2212\u03bb\n=\n0\n1\n1\n1\n1\n0\n1\n1\n[A]\n1\n1\n0\n1\n1\n1\n1\n0\n\n\n| A\nI |\n0\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n=\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n0\n1\n1\n1\n1\n0\n1\n1\n0\n1\n1\n0\n1\n1\n1\n1\n0\n\nR\nR\nR\n\u2192\n\u2212\n1\n1\n2\nR\nR\nR\n\nApplying\n\u2192\n\u2212\n2\n2\n3\nR\nR\nR\n\u2192\n\u2212\n3\n3\n4\n\u2212\u03bb \u2212\n+ \u03bb\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\u2212\u03bb \u2212\n+ \u03bb\n\uf0ea\n\uf0fa\n=\n\uf0ea\n\uf0fa\n\u2212\u03bb \u2212\n+ \u03bb\n\uf0ea\n\uf0fa\n\u2212\u03bb\n\uf0eb\n\uf0fb\n1\n1\n0\n0\n0\n1\n1\n0\n0\n0\n0\n1 1\n1\n1\n1\n\n\n\u2212\u03bb \u2212\n+ \u03bb\n+ \u03bb\n\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\u2212\u03bb \u2212\n\u2212\u03bb \u2212\n+ \u03bb \u2212\n+ \u03bb\n\u2212\u03bb \u2212\n+ \u03bb =\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\u2212\u03bb\n\u2212\u03bb\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n1 1\n0\n0 1\n0\n(\n1)\n0\n1 1\n(1\n) 0\n1 1\n0\n\n\n1\n1\n1\n1\n\u2212\u03bb \u2212\n+ \u03bb\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\u2212\u03bb \u2212\n\u2212\u03bb \u2212\n+ \u03bb\n=\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\u2212\u03bb\n\uf0eb\n\uf0fb\n(\n1) 2(1\n)\n0\n(\n1)\n0\n2(\n1) 2(1\n)\n0\n\n2\n2\n2\n{\n}\n(\n)\n{\n}\n2\n2\n(1\n) (\n1) 4(\n)\n4(1\n)\n2 4 1\n0\n\uf0e9\n\uf0f9\n+ \u03bb\n\u2212\u03bb \u2212\n\u03bb + \u03bb\n\u2212\n+ \u03bb\n+\n+ \u03bb\n=\n\uf0eb\n\uf0fb\n(\n)\n2\n2\n(1\n) (\n1)4(\n1)\n8 1\n0\n\uf0e9\n\uf0f9\n+ \u03bb\n\u2212\u03bb \u2212\n\u03bb \u2212\n+\n+ \u03bb\n=\n\uf0eb\n\uf0fb\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n20\n\n[\n]\n3\n(1\n)\n4(\n1)\n8\n0\n+ \u03bb\n\u2212\n\u03bb \u2212\n+\n=\n[\n]\n3\n(1\n) 12\n4\n0\n+ \u03bb\n\u2212\u03bb =\n+ \u03bb =\n\u03bb = \u2212\u2212\u2212\n\uf0fc\n\uf0fd\n\u2212\u03bb =\n\u03bb =\n\uf0fe\n1\n0\n1, 1, 1\n12\n4\n0\n3\nHence the maximum, engine value is 3."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/19/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/19/exp.webp
new file mode 100644
index 0000000..5ef5b5c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/19/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/19/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/19/q.webp
new file mode 100644
index 0000000..cf4e878
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/19/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/2/data.json b/frontend/public/assets/gate/cs/questions/2021-M/2/data.json
new file mode 100644
index 0000000..c97c8fe
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/2/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "2",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 2 \n \n \n \n \n \n \n \nNAT (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251580 \n \nConsider the following c code segments :\n;\na\nb c\n= +\n1;\ne\na\n=\n+\n;\nd\nb c\n= +\n1;\nf\nd\n=\n+\n;\ng\ne\nf\n= +\nIn a compiler, this code segment is represented internally as a directed acyclic graph (DAG). The \nnumber of nodes in the given DAG is _________. \nAns. \n6 \nSol. \nGiven code segment\n;\na\nb\nc\n=\n+\n1;\ne\na\n=\n+\n;\nd\nb\nc\n=\n+\n1;\nf\nd\n=\n+\n;\ng\ne\nf\n=\n+\n1\ne\nd\n= +\n+\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n7\n\n1\ne\nb\nc\n= + + +\n1\n1\na\nb\nc\n=\n+ + + +\n(\n1)\n(\n1)\nb\nc\nb\nc\n=\n+\n+\n+\n+\n+\nDAG\n\uf0de\n\uf02b\n\uf02b\n\uf02b\n1\nb\nc\n\n6 nodes\n=",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/2/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/2/q.webp
new file mode 100644
index 0000000..58f87f0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/2/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/24/data.json b/frontend/public/assets/gate/cs/questions/2021-M/24/data.json
new file mode 100644
index 0000000..a215244
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/24/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "24",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "D",
+ "question_text": "Question 24 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251537 \n \nLet p and q be two propositions. Consider the following two formulae in propositional logic.\n1\n \n:(\n(\n)\nS\np\np\nq\nq\n\u00ac \u2227\n\u2228\n\u2192\n2\n \n:\n(\n(\n))\nS\nq\np\np\nq\n\u2192\u00ac \u2227\n\u2228\n(A) Both \n1\nS\n and \n2\nS\n both are tautologies. \n(B) Neither \n1\nS\n nor \n2\nS\n is a tautology.\n(C) \n1\nS\n is not a tautology but \n2\nS\n is a tautology. (D) \n1\nS\n is a tautology but \n2\nS\n is not a tautology.",
+ "answer_text": "D",
+ "explanation_text": "Sol. \n1\nS\n : (p\u2019(p+q))\u2019 + q = (p\u2019p+p\u2019q)\u2019 + q = (p\u2019q)\u2019 + q = p + q\u2019 + q = 1 ( Tautology )\n2\nS\n : q\u2019 + (p\u2019(p+q)) = q\u2019 + (pp\u2019 + p\u2019q) = q\u2019 + p\u2019q = (q\u2019 + p\u2019)(q\u2019 + q) = q\u2019+p\u2019"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/24/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/24/exp.webp
new file mode 100644
index 0000000..58650a1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/24/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/24/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/24/q.webp
new file mode 100644
index 0000000..70ca745
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/24/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/25/data.json b/frontend/public/assets/gate/cs/questions/2021-M/25/data.json
new file mode 100644
index 0000000..abc4ffc
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/25/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "25",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 25 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251563 \n \nConsider the relation \n( ,\n, , ,\n, ,\n,\n)\nR P Q S T X Y Z W\n with the following functional dependencies.\n;\n;\n;\nPQ\nX P\nYX Q\nY\nY\nZW\n\u2192\n\u2192\n\u2192\n\u2192\nConsider the decomposition of the relation R into the constituent relations according to the following \ntwo decomposition schemes.\n(\n)\n (\n)\n (\n)\n (\n)\n1\n \n:\n,\n, ,\n;\n, ,\n;\n,\n;\n, ,\nD\nR\nP Q S T\nP T X\nQ Y\nY Z W\n\uf0e9\n\uf0f9\n=\n \uf0eb\n\uf0fb\n(\n)\n (\n)\n (\n)\n (\n)\n2\n \n:\n,\n,\n;\n,\n;\n,\n;\n, ,\nD\nR\nP Q S\nT X\nQ Y\nY Z W\n\uf0e9\n\uf0f9\n=\n \uf0eb\n\uf0fb\nWhich one of the following opt ions is correct?\n(A) \n1\nD\n is a lossless decomposition, but \n2\nD\n is a lossy decomposition.\n(B) Both \n1\nD\n and \n2\nD\n are lossy decompositions.\n(C) Both \n1\nD\n and \n2\nD\n are lossless decompositions.\n(D) \n1\nD\n is a lossy decomposition, but \n2\nD\n is a lossless decomposition.",
+ "answer_text": "A",
+ "explanation_text": "Sol.\n \nFor decomposition D1 :\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n21\n\nR1(PQST)\nR2(PTX)\nR3(QY)\nR4(YZW)\nSince all the relations have a common attribute and either of them have a common attribute as the \nprimary key, therefore, the given relation is lossless.\nFor decomposition D2 :\nR1(PQS)\nR2(TX)\nR3(QY)\nR4(YZW)\nSince, neither of them have a common attribute as the primary key, therefore, the given decomposition \nis not a lossless decomposition."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/25/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/25/exp.webp
new file mode 100644
index 0000000..3aed96d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/25/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/25/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/25/q.webp
new file mode 100644
index 0000000..2a4831e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/25/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/26/data.json b/frontend/public/assets/gate/cs/questions/2021-M/26/data.json
new file mode 100644
index 0000000..fa4cfe0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/26/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "26",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "C \nSol.\n \nARP Request is broadcast and reply is always unicast \nQuestion 27 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251561 \nConsider the following context - free grammar where the of terminals is{a,b,c,d,f}\nS\ndaT | Rf\n\u2192\nT\naS| baT |\nR\ncaTR |\n\n\u2192\n\u2208\n\u2192\n\u2208\nThe following is a partially filled LL(1) parse table________ \n \na \nb \nc \nd \nf \n$\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n22\n\nS \n \n \n(1) \nS\ndaT\n\u2192\n \n(2) \n \nT \nT\naS\n\u2192\n \nT\nbaT\n\u2192\n \n(3) \n \nT\n \u2192\u03b5\n \n(4) \nR \n \n \nR\ncaTR\n\u2192\n \nR\n \u2192\u03b5\n \n \n \nWhich one of the following choices represents the correct combination for the numbered cells in the \nparsing table (\"blank\"' denotes that the corresponding cell is empty)?\n(A) \n(1)\n(2)\n(3)\n(4)\nS\nRf\nS\nRf\nT\nT\n\u2192\n\u2192\n\u2192\u2208\n\u2192\u2208\n(B) \n(1)blank\n(2)\n(3)blank\n(4)blank\nS\nRf\n\u2192\n(C) \n(1)\n(2)blank\n(3)blank\n(4)\nS\nRf\nT\n\u2192\n\u2192\u2208\n(D) \n(1)blank\n(2)\n(3)\n(4)\nS\nRf\nT\nT\n\u2192\n\u2192\u2208\n\u2192\u2208\n A \nQuestion 28 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251541 \n \nIn the context of operating systems, which of the following statements is/are correct \nwith respect to paging? \n \n(A) Page size has no impact on internal fragmentation. \n \n(B) Paging incurs memory overheads. \n \n(C) Multi-level paging is necessary to support pages of different sizes. \n \n(D) Paging helps solve the issue of external fragmentation. \n \nB, D",
+ "question_text": "Question 26 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251538 \n \n \nConsider the following two statements.\n1\nS\n : Destination MAC address of an AR P reply is a broadcast address.\n2\nS\n : Destination MAC address of an AR P request is a broadcast address.\nWhich one of the following choices is correct?\n(A) \n1\nS\n is true and \n2\nS\n is false. \n(B) Both \n1\nS\n and \n2\nS\n are true.\n(C) \n1\nS\n is false and \n2\nS\n is true. \n(D) Both \n1\nS\n and \n2\nS\n are false.",
+ "answer_text": "C \nSol.\n \nARP Request is broadcast and reply is always unicast \nQuestion 27 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251561 \nConsider the following context - free grammar where the of terminals is{a,b,c,d,f}\nS\ndaT | Rf\n\u2192\nT\naS| baT |\nR\ncaTR |\n\n\u2192\n\u2208\n\u2192\n\u2208\nThe following is a partially filled LL(1) parse table________ \n \na \nb \nc \nd \nf \n$\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n22\n\nS \n \n \n(1) \nS\ndaT\n\u2192\n \n(2) \n \nT \nT\naS\n\u2192\n \nT\nbaT\n\u2192\n \n(3) \n \nT\n \u2192\u03b5\n \n(4) \nR \n \n \nR\ncaTR\n\u2192\n \nR\n \u2192\u03b5\n \n \n \nWhich one of the following choices represents the correct combination for the numbered cells in the \nparsing table (\"blank\"' denotes that the corresponding cell is empty)?\n(A) \n(1)\n(2)\n(3)\n(4)\nS\nRf\nS\nRf\nT\nT\n\u2192\n\u2192\n\u2192\u2208\n\u2192\u2208\n(B) \n(1)blank\n(2)\n(3)blank\n(4)blank\nS\nRf\n\u2192\n(C) \n(1)\n(2)blank\n(3)blank\n(4)\nS\nRf\nT\n\u2192\n\u2192\u2208\n(D) \n(1)blank\n(2)\n(3)\n(4)\nS\nRf\nT\nT\n\u2192\n\u2192\u2208\n\u2192\u2208\n A \nQuestion 28 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251541 \n \nIn the context of operating systems, which of the following statements is/are correct \nwith respect to paging? \n \n(A) Page size has no impact on internal fragmentation. \n \n(B) Paging incurs memory overheads. \n \n(C) Multi-level paging is necessary to support pages of different sizes. \n \n(D) Paging helps solve the issue of external fragmentation. \n \nB, D",
+ "explanation_text": "Sol. \nOption (A) \u2013 Incorrect\nOption (B) \u2013 Correct, since paging use page table and page table are stored in RAM\nOption (C) \u2013 Incorrect\nOption (D) \u2013 Correct because paging is non continuous memory allocation scheme."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/26/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/26/exp.webp
new file mode 100644
index 0000000..8433e79
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/26/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/26/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/26/q.webp
new file mode 100644
index 0000000..2489c6b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/26/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/29/data.json b/frontend/public/assets/gate/cs/questions/2021-M/29/data.json
new file mode 100644
index 0000000..370a9ed
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/29/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "29",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "A\n \nQuestion 30 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251543 \n \nSuppose a database system crashes again while recovering from a previous crash.\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n23\n\nAssume check-pointing is not done by the database either during the transactions or during recovery.\n \nWhich of the following statements is/are correct?\n \n \n(A) The same undo and redo list will be used while recovering again. \n \n(B) The system cannot recover any further. \n \n(C) The database will become inconsistent \n \n(D) All the transactions that are already undone and redone will not be recovered again. \n \nA",
+ "question_text": "Question 29 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251560 \n \nConsider the following recurrence relation\n( / 2)\n(2 / 5)\n7\nif \n0\n( )\n1\nif \n0\nT n\nT\nn\nn\nn\nT n\nn\n+\n+\n>\n\uf0ec\n=\n \uf0ed\n=\n\uf0ee\nWhich one of the following options is correct?\n(A) \n( )\n( )\nT n\nn\n= \u03b8\n \n(B) \n5/2\n( )\n((log )\n)\nT n\nn\n= \u03b8\n (C) \n( )\n( log )\nT n\nn\nn\n= \u03b8\n \n(D) \n5/2\n( )\n(\n)\nT n\nn\n= \u03b8",
+ "answer_text": "A\n \nQuestion 30 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251543 \n \nSuppose a database system crashes again while recovering from a previous crash.\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n23\n\nAssume check-pointing is not done by the database either during the transactions or during recovery.\n \nWhich of the following statements is/are correct?\n \n \n(A) The same undo and redo list will be used while recovering again. \n \n(B) The system cannot recover any further. \n \n(C) The database will become inconsistent \n \n(D) All the transactions that are already undone and redone will not be recovered again. \n \nA",
+ "explanation_text": "Sol.\n \nWe know that in a log file all the operations are idempotent (result will be same on preforming same \noperation multiple times) and are recorded periodically. Therefore, even on multiple crashes the same \nundo and redo list will be used while recovering the system."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/29/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/29/exp.webp
new file mode 100644
index 0000000..92c7030
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/29/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/29/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/29/q.webp
new file mode 100644
index 0000000..326b392
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/29/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/3/data.json b/frontend/public/assets/gate/cs/questions/2021-M/3/data.json
new file mode 100644
index 0000000..88d298a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/3/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "3",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "D",
+ "question_text": "Question 3 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251562\nLet \n( )\ni\nr z\n and \n( )\ni\nw z\n denote read and write operations respectively on a data item Z by a transaction \ni\nT\n .\nConsider the following two schedules.\n1\n1\n1\n2\n2\n2\n1\n: ( );\n( );\n( );\n( );\n( );\n( )\nS\nr x\nr y\nr x\nr y\nw\ny\nw x\n2\n1\n2\n2\n2\n1\n1\n: ( );\n( );\n( );\n( );\n( );\n( )\nS\nr x\nr x\nr y\nw\ny\nr y\nw x\n(A) Both \n1\nS\n and \n2\nS\n are conflict serializable.\n(B) Neither \n1\nS\n nor \n2\nS\n is conflict serializable.\n(C) \n1\nS\n is conflict serializable, and \n2\nS\n is not conflict serializable.\n(D) \n1\nS\n is not conflict serializable and\n2\nS\n is conflict serializable.",
+ "answer_text": "D",
+ "explanation_text": "Sol.\n \nThe schedule \n2\nS\n is CSS but \n1\nS\n is not conflict serializable due to the cycle in the precedence graph.\nThe precedence graph of \n1\nS\n will be :\n1\nT\n2\nT\n\nIt is not CSS due to the conflict :\n1\n2\n( )\n( )\nR Y\nW Y\n\u2212\n, and \n2\n1\n(\n)\n(\n)\nR\nX\nW X\n\u2212\nThe precedence graph of \n2\nS\n will be :\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n8\n\n1\nT\n2\nT\n\n2\nS\n is a conflict serializable schedule."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/3/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/3/exp.webp
new file mode 100644
index 0000000..9cc2d38
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/3/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/3/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/3/q.webp
new file mode 100644
index 0000000..9d398f6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/3/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/31/data.json b/frontend/public/assets/gate/cs/questions/2021-M/31/data.json
new file mode 100644
index 0000000..99b61a0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/31/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "31",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "A\n \nQuestion 32 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251542\nLet, \nM\n denote an encoding of an automaton \nM\n. Suppose that \n{0,1}\n\u03a3 =\n. Which of the following\nlanguage is/are NOT recursive?\n(A) \nL\n{ M |\n=\nM is a DFA such that \nL(M)\n}\n= \u03c6\n(B) \nL\n{ M |\n=\n M is a PDA such that \nL(M)\n*}\n=\n \uf0e5\n(C) \nL\n{ M |\n=\nM is a DFA such that \nL(M)\n*}\n=\n \uf0e5\n(D) \nL\n{ M |\n=\n M is a PDA such that \nL(M)\n}\n= \u03c6\n \nB\n \nQuestion \n33 \n \n \n \n \n \n \n \nNAT (1M)\n \n \n \n \n \n \n \n \n \nQuestion ID : 823251547\n \n \nConsider the following undirected graph with edge weights as shown:\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n24\n\n0.1\n0.1\n0.9\n0.9\n0.9\n0.1\n0.1\n0.9\n0.1\n0.1\nThe number of minimum-weight spanning trees of the graph is ________. \n \n3 \nSol. \nSolid lines represent compulsory edges in MST and dotted lines represent optional edges in MST only \none edge out of those 3 edges is possible hence answer is 3.\n0.9\n0.1\ng\nt\nf\n1\n1\n9\n9\nc\nd\ne\n9\n1\n1\n1\n1\n1\nb\na\ns",
+ "question_text": "Question 31 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251569\nFor a turning machine \n,\nM\nM\n denotes encoding of \nM\n, consider\n1\n{\n takes more than 2021 steps in all input\nL\nM m\n=\n2\n{\n takes more than 2021 in some input\nL\nM m\n=\nWhich one of the following option is correct?\n(A) Both \n1\nL\n and \n2\nL\n decidable \n(B) \n1\nL\n decidable and \n2\nL\n undecidable\n(C) \n1\nL\n undecidable and \n2\nL\n decidable \n(D) Both \n1\nL\n and \n2\nL\n undecidable",
+ "answer_text": "A\n \nQuestion 32 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251542\nLet, \nM\n denote an encoding of an automaton \nM\n. Suppose that \n{0,1}\n\u03a3 =\n. Which of the following\nlanguage is/are NOT recursive?\n(A) \nL\n{ M |\n=\nM is a DFA such that \nL(M)\n}\n= \u03c6\n(B) \nL\n{ M |\n=\n M is a PDA such that \nL(M)\n*}\n=\n \uf0e5\n(C) \nL\n{ M |\n=\nM is a DFA such that \nL(M)\n*}\n=\n \uf0e5\n(D) \nL\n{ M |\n=\n M is a PDA such that \nL(M)\n}\n= \u03c6\n \nB\n \nQuestion \n33 \n \n \n \n \n \n \n \nNAT (1M)\n \n \n \n \n \n \n \n \n \nQuestion ID : 823251547\n \n \nConsider the following undirected graph with edge weights as shown:\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n24\n\n0.1\n0.1\n0.9\n0.9\n0.9\n0.1\n0.1\n0.9\n0.1\n0.1\nThe number of minimum-weight spanning trees of the graph is ________. \n \n3 \nSol. \nSolid lines represent compulsory edges in MST and dotted lines represent optional edges in MST only \none edge out of those 3 edges is possible hence answer is 3.\n0.9\n0.1\ng\nt\nf\n1\n1\n9\n9\nc\nd\ne\n9\n1\n1\n1\n1\n1\nb\na\ns",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/31/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/31/q.webp
new file mode 100644
index 0000000..7e4ac52
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/31/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/34/data.json b/frontend/public/assets/gate/cs/questions/2021-M/34/data.json
new file mode 100644
index 0000000..a546cb0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/34/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "34",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 34 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251539 \n \nConsider the following array\n \n \n \n23 \n32 \n45 \n69 \n72 \n73 \n89 \n97 \n \nWhich algorithm out of the following option uses the least number of comparisons (among the array \nelements) to sort the above array in ascending order ? \n \n(A) Mergesort \n \n \n(B) Quick sort using last element ass pivot \n \n \n(C) Selection sort \n \n \n(D) Insertion sort \nAns. \nD \nSol.\n \nGiven array is already sorted hence\nInsertion sort will uses the least number of comparison.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/34/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/34/q.webp
new file mode 100644
index 0000000..e1463ac
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/34/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/35/data.json b/frontend/public/assets/gate/cs/questions/2021-M/35/data.json
new file mode 100644
index 0000000..e0285b9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/35/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "35",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 35 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251556 \n \nConsider the following grammar (that admits a series of declaration, followed by expression) and the \nassociated syntax directed translation (SDT)action, gived as pseudo-code :\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n25\n\nS\nD*E*\n\u2192\n \nD\n \u2192\n int ID {record that ID.lexeme is of type int} \nD\n \u2192\nbool ID{record that ID.lexeme is of type bool} \nE\n \u2192\nE\n1\n + E\n2\n {check if E\n1.\ntype = E\n2\n.type = int; set E.type t = int} \nE\n \u2192\n!E\n1\n {check that E\n1\n.type = bool; then set E.type = bool} \nE\n \u2192\nID {Set E.type= int} \nWith respect to the above grammar, which one of the following choices is correct? \n(A) The actions can be used to type-check syntactically correct integer variable decla- \nrations and integer expressions. \n(B)The actions will lead to an infinite loop. \n(C)The actions can be used to type-check syntactically correct boolean variable decla- \nrations and boolean expressions. \n(D)The actions can be used to correctly type-check any syntactically correct program. \nAns. \nA\n \nQuestion 36 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251554 \n \nConsider the following representation of a number in IEEE 754 single-precision floating point format \nwith bass of 127 \n \nS : 1 \n \nE : 10000001 \nF : 11110000000000000000000 \nHere S, E and F denote the sign, exponent and fraction components of the floating \npoint representation. \nThe decimal value corresponding to the above representation (rounded to 2 decimal \nplaces) is_______. \nAns. \n\u20137.75 \nSol.\n \nSign bit = 1 \n \n \nBE \n10000001\n=\n7\n0\n2\n2\n=\n+\n128\n1\n129\n=\n+\n=\n127\nE\nBE\n=\n\u2212\n129\n127\n=\n\u2212\n2\n=\nBinary No \n2\n1.1111 2\n= \u2212\n\u00d7\n2\n( 111.11)\n= \u2212\n10\n( 7.75)\n= \u2212\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n26\n",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/35/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/35/q.webp
new file mode 100644
index 0000000..ad68bcc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/35/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/37/data.json b/frontend/public/assets/gate/cs/questions/2021-M/37/data.json
new file mode 100644
index 0000000..bda739d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/37/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "37",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 37 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251557 \n \nThe following relation records the age of 500 employees of a company, where empNo \n(indicating the employee number) is the key : \n \nempAge(empNo, cige) \nConsider the following relational algebra expression: \n \n(\n1)\n1,\n1\n(\n(\n)\nempNo\nage age\nempNo age\nempAge\nempAge\n>\n\u03a0\n\u03c1\n\uf03e\uf03c\nWhat does the above expression generate? \n(A)\n \nEmployee numbers of only those employees whose age is more than the age of \nexactly one other employee. \n(B)\n \nEmployee numbers of only those employees whose age is the maximum. \n(C)\n \nEmployee numbers of all employees whose age is the minimum. \n(D)\n \nEmployee numbers of all employees whose age is not the minimum. \nAns. \nD \nSol. \nThe given join is the conditional joins the relations if the age is greater than any of the ages mentioned in \nthe database. Therefore, it results employees whose age is not minimum.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/37/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/37/q.webp
new file mode 100644
index 0000000..8879144
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/37/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/38/data.json b/frontend/public/assets/gate/cs/questions/2021-M/38/data.json
new file mode 100644
index 0000000..4b1c576
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/38/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "38",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 38 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251540 \n \nA Binary search tree T contains n distinct elements. What is time complexity of picking an elements in \nT that is smaller than the maximum element in T? \n \n(A) \n( log )\nn\nn\n\u03b8\n \n(B) \n(log )\nn\n\u03b8\n \n(C) \n( )\nn\n\u03b8\n \n(D) \n(1)\n\u03b8\n \nAns. \nD \nSol. \nIn BST maximal element will be in right most leaf node\nIf root has right sub tree then root itself is smaller than maximum value\nIf root does not have right subtree then root is maximum element and left child of root is the required \nelement.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/38/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/38/q.webp
new file mode 100644
index 0000000..9363a21
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/38/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/39/data.json b/frontend/public/assets/gate/cs/questions/2021-M/39/data.json
new file mode 100644
index 0000000..5f35310
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/39/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "39",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 39 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251552 \n \nConsider a computer system with a byte-addressable primary memory of size 2\n32\n bytes. Assume the \ncomputer system has a direct-mapped cache of size 32 KB (1 KB = 2\n10\n bytes), and each cache block is \nof size 64 bytes. The size of the tag field is _____bits. \nAns. \n17",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nSize of main memory \n32\n2 Bytes\n=\n\u2234\n No. of bits in physical add \n2\nlog (M.M.size)\n=\n32\n2\nlog (2 )\n=\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n27\n\n32bits\n=\nCache memory size \n32kB\n=\nCache block size \n64B\n=\n\u2234\n No. of cache lines \nCachemainsize\nCacheblocksize\n=\n32kB\n512\n64B\n=\n=\nFormat of physical add at direct mapped cache is\nP.A bits (32)\nTag\nLine\no\ufb00set\nWord\no\ufb00set\n2\nlog (Blocksize)\n17\n2\nlog (64)\n6bits\n\u0003\n9 bits\n6\n2\nlog (Noof cachelines)\n\n2\nlog (512)\n=\n9bits\n=\nNo. of bits in tag = P.A \u2013 Line offset \u2013 word offse\n32\n96\n=\n\u2212\n17bits\n="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/39/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/39/exp.webp
new file mode 100644
index 0000000..6a5037d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/39/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/39/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/39/q.webp
new file mode 100644
index 0000000..890ce7f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/39/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/4/data.json b/frontend/public/assets/gate/cs/questions/2021-M/4/data.json
new file mode 100644
index 0000000..2056b42
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/4/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "4",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 4 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251544 \n \nWhich of the following standard C library functions will always invoke a system call when executed \nfrom a single-threaded process in a UNIX/LINUX Operating system ? \n \n(A) sleep \n(B) strlen \n(C) malloc \n(D) exit \nAns. \nA, D",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/4/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/4/q.webp
new file mode 100644
index 0000000..afbef26
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/4/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/40/data.json b/frontend/public/assets/gate/cs/questions/2021-M/40/data.json
new file mode 100644
index 0000000..85c449c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/40/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "40",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 40 \n \n \n \n \n \n \n \nMSQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251545 \n \nConsider a linear list based directory implementation in a file system. Each directory is a list of nodes, \nwhere each node contains the file name along with the file metadata, such as the list of pointers to the \ndata blocks. Consider a given directory foo. \nWhich of the following operations will necessarily require a full scan of foo for \nsuccessful completion? \n(A)\n \nDeletion of an existing file from foo \n(B) Renaming of an existing file in foo \n(C) Creation of a new file in foo \n(D) Opening of an existing file in foo \nAns. \nB, C",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/40/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/40/q.webp
new file mode 100644
index 0000000..a254903
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/40/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/41/data.json b/frontend/public/assets/gate/cs/questions/2021-M/41/data.json
new file mode 100644
index 0000000..521734c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/41/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "41",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 41 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251533 \n \nConsider the following three function :\nlog\n1\n2\n3\n10 ,\n,\nn\nn\nn\nf\nf\nn\nf\nn\n=\n=\n=\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n28\n\nWhich one of the following options arranges the functions in the increasing order \nof asymptotic growth rate?\n(A) \n1 2 3\nf f f\n \n(B) \n2 3 1\nf f f\n \n(C) \n3 2 1\nf f f\n \n(D) \n2 1 3\nf f f\n \nAns. \nB",
+ "answer_text": "",
+ "explanation_text": "Sol. \nTaking log for all the functions\nlog(f\n1\n) = nlog10, log(f\n2\n) = (logn)\n2 \n \nlog(f\n3\n) = \u221anlogn\nhence f\n2\n < f\n3\n < f\n1"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/41/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/41/exp.webp
new file mode 100644
index 0000000..e858153
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/41/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/41/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/41/q.webp
new file mode 100644
index 0000000..508b7dc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/41/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/42/data.json b/frontend/public/assets/gate/cs/questions/2021-M/42/data.json
new file mode 100644
index 0000000..1531663
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/42/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "42",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 42 \n \n \n \n \n \n \n \nNAT (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251581\nIn a pushdown automaton \n0\n( , , ,\n,\n)\nP\nQ\nq F\n=\n\u03a3 \u0393\n a transition of the form,\np\nq\n,\na X\nY\n\u2192\nWhere, \n,\n,\n{ }\np q\nQ a\n\u2208\n\u2208\u03a3 \u222a\u2208\n, and \nt\nn\n>\n,represents \n( , )\n( , ,\n)\nq Y\np a X\n\u2208\u03b4\nConsider the following pushdown automaton over the input alphabet \n{ , }\na b\n\u03a3 =\nand stack alphabet\n{#, }.\nA\n\u0393 =\n,\na\nA\n\u2208\u2192\n,\nb A\n \u2192\u2208\n,\n\u2208\u2208\u2192\u2208\n,\n#\n\u2208\u2208\u2192\nStart\n0\nq\n1\nq\n,\n A\nA\n\u2208\n\u2192\n2\nq\n3\nq\nThe number of strings of length 100 accepted by the above pushdown automaton is _________. \nAns. \n50 \nQuestion 43 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251546 \n \nIn an undirected connected planar graph G, there are eight vertices and five faces.The number of edges \nin G is_______. \nAns. \n11 \nSol.\n \nNumber of Faces/Region(F) = 5 \nNumber of vertices(V) = 8\nNumber of Edges(E)?\nFormula used: F = E-N+2\n\uf0e8\nE = F+N-2\n= 5+8-2 = 11",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/42/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/42/q.webp
new file mode 100644
index 0000000..16be6bf
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/42/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/44/data.json b/frontend/public/assets/gate/cs/questions/2021-M/44/data.json
new file mode 100644
index 0000000..7a67175
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/44/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "44",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 44 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251559 \n \nAssume that a 12-bit Hamming codeword consisting of 8-bit data and 4 check bits \nis \n8\n7\n6\n5 8\n4\n4\n3\n2 4\n1 2 1\nd d d d c d d d d c d c c\n , where the data bits and the check bits are given inthe following tables:\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n29\n\nData bits \nd\n8\n \nd\n7\n \nd\n0\n \nd\n5\n \nd\n4\n \nd\n3\n \nd\n2\n \nd\n1\n \n1 \n1 \n0 \nX \n0 \n1 \n0 \n1\nCheck bits \nC\n8\n \nC\n4\n \nC\n2\n \nC\n0\n \ny \n0 \n1 \n0 \nWhich one of the following choices gives the correct values of x and y? \n(A)\n \nx is 1 and y is 0. (B) x is 0 and y is 1. \n(C) x is 1 and y is 1. \n(D) x is 0 and y is 0. \nAns. \nD",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/44/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/44/q.webp
new file mode 100644
index 0000000..520ec9b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/44/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/45/data.json b/frontend/public/assets/gate/cs/questions/2021-M/45/data.json
new file mode 100644
index 0000000..fec2903
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/45/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "45",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 45 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251532 \n \nLet P be an array containing n integers. Let t be the lowest upper bound on the number of comparisons \nof the array elements, required to find the minimum and maximum values in an arbitrary array of n \nelements. Which one of the following \nchoices is correct?\n(A) \nt\nn\n>\nand \n3\nt\n \u2264\n\u1252\n\u0be1\n\u0b36\n\u1253\n \n \n(B) t > 2n - 2\n(C) t > \n\u2308log\n\u0b36\n(\ud835\udc5b)\u2309 \ud835\udc4e\ud835\udc5b\ud835\udc51 \ud835\udc61\u2264\ud835\udc5b\n \n(D) \n3\nt\n >\n\u1252\n\u0be1\n\u0b36\n\u1253\n and t \n\u22642\ud835\udc5b\u22122",
+ "answer_text": "A",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/45/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/45/q.webp
new file mode 100644
index 0000000..33470e0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/45/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/46/data.json b/frontend/public/assets/gate/cs/questions/2021-M/46/data.json
new file mode 100644
index 0000000..48918de
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/46/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "46",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 46 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251574 \n \nA TCP server application is programmed to listen on port number P on host S. ATCP client is connected \nto the TCP server over the network. \nConsider that while the TCP connection was active, the server machine S crashed and rebooted. Assume \nthat the client does not use the TCP keepalive timer. \nWhich of the following behaviors is/are possible? \n(A)\n \nThe TCP server application on S can listen on P after reboot. \n(B)\n \nIf the client was waiting to receive a packet, it may wait indefinitely. \n(C)\n \nIf the client sends a packet after the server reboot, it will receive a FIN segment. \n(D)\n \nIf the client sends a packet after the server reboot, it will receive a RST segment. \nAns. \nA, B, D",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/46/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/46/q.webp
new file mode 100644
index 0000000..5dd1576
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/46/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/47/data.json b/frontend/public/assets/gate/cs/questions/2021-M/47/data.json
new file mode 100644
index 0000000..0fd60b8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/47/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "47",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 47 \n \n \n \n \n \n \n \nNAT (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251578 \n \nConsider the following ANSI C function: \nint SimpleFunction(int Y[], int n, int x) \n{ \n \n \nint total = Y[0], looplndex;\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n30\n\nfor (looplndex = 1; looplndex <= n - 1; loopIndex++) \ntotal = x * total + Y[looplndex]; \n \n \nreturn total; \n} \nLet Z be an array of 10 elements with Z [?']-1, for all i such that 0 < i < 9. The value returned by \nSimpleFunction(Z, 10,2) is__________. \nAns. \n1023 \nSol.\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n9\nZ\n0\n1\n2\n3\n4\n5\n6\n7\n8\n\nTotal\n[0]\n[0]\n1\nY\nZ\n=\n=\n=\n10\nn\n =\n2\nx\n =\nLoop index \nTotal\n*total\n[loop index]\nx\nY\n=\n+\n \n1 \n2*1\n[1]\n2*1 1\n3\nY\n+\n=\n+ =\n2 \n2*3\n[2]\n2*3 1\n7\nY\n+\n=\n+ =\n3 \n2*7\n[3]\n2*7\n1\n15\nY\n+\n=\n+ =\n4 \n2*15\n[4]\n2*15 1\n31\nY\n+\n=\n+ =\n5 \n2*31\n[5]\n2*31 1\n63\nY\n+\n=\n+ =\n6 \n2*63\n[6]\n2*63 1\n127\nY\n+\n=\n+ =\n7 \n2*127\n[7]\n2*127\n1\n255\nY\n+\n=\n+ =\n8 \n2*255\n[8]\n2*255 1\n511\nY\n+\n=\n+ =\n9 \n2*511\n[9]\n2*511 1\n1023\nY\n+\n=\n+ =\n \n \nQuestion 48 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251549 \n \nThere are 6 jobs with distinct difficulty levels, and 3 computers with distinct processing speeds. Each \njob is assigned to a computer such that: \n \n\uf09f\n The fastest computer gets the toughest job and the slowest computer gets the easiest job. \n \n\uf09f\n Every computer gets at least one job. \n \nThe number of ways in which this can be done is_____. \nAns. \n65 \nSol. \nAs 2 Jobs are already assigned to Fastest and Slowest Computer (Toughest and Easiest job respectively). \nWe are only left with 4 distinct Jobs to be distributed to 3 distinct Computers. Intermediate has not been \nassigned any, other have got one each, therefore 4 jobs to be distributed such that intermediate must get \nat least one. \nFastest \nIntermediate \nSlowest\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n31\n\n2 \n \n \n1 \n \n1\n1 \n \n \n1 \n \n2\n1 \n \n \n2 \n \n1\n2 \n \n \n2 \n \n0\n0 \n \n \n2 \n \n2\n3 \n \n \n1 \n \n0\n0 \n \n \n1 \n \n3\n0 \n \n \n3 \n \n1\n1 \n \n \n3 \n \n0\n0 \n \n \n4 \n \n0\nTherefore total cases are 4C2 X 2C1 X 3 + 4C2 X 2 + 4C3 X 4 + 4C4 = 36 + 12 + 16 + 1 = 65",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/47/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/47/q.webp
new file mode 100644
index 0000000..d61b5ed
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/47/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/49/data.json b/frontend/public/assets/gate/cs/questions/2021-M/49/data.json
new file mode 100644
index 0000000..1d24bd1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/49/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "49",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 49 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251548 \n \n The lifetime of a component of a certain type is a random variable whose probability density function is \nexponentially distributed with parameter 2. For a randomly picked component of this type, the \nprobability that its lifetime exceeds the expected lifetime (rounded to 2 decimal places) is ______. \nAns. \n0.35 to 0.39",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/49/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/49/q.webp
new file mode 100644
index 0000000..6508820
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/49/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/5/data.json b/frontend/public/assets/gate/cs/questions/2021-M/5/data.json
new file mode 100644
index 0000000..f2dd3d4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/5/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "5",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 5 \n \n \n \n \n \n \n \nMCQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251566 \n \nLet G=(V, E) be an undirected unweighted connected graph. The diameter of G is defined as : \nDiam (G)\nmax\nuv\nG\n\u2200\n\u2208\n=\n {the length of shortest path between u and v}\nLet M be the Adjacency matrix of G. \nDefine a graph G\n2\n on the same set of vertices with adjacency matrix N, where\n2\nij\nij\nij\n P\n 0 where P\n1if M\n0 or\nN\n0\notherwais\nM\ne\n>\n\uf0ec\n=\n \uf0ed\n=\n>\n\n\uf0ee\nWhich one of the following statements is true? \n(A) diam(G)\n2\nS\n : For all random variables X and Y.\n[\n, ]\n[|\n[\n]||\n[ ]|]\nCov X Y\nE\nX\nE X\nY\nE Y\n=\n\u2212\n\u2212\nWhich one of the following choices is correct?\n(A)\n \nBoth\n1\nS\n and \n2\nS\n are true. \n(B) Both \n1\nS\n and \n2\nS\n are false.\n(C) \n1\nS\n is false, but \n2\nS\n is true. \n(D) \n1\nS\n is true, but \n2\nS\n is false.",
+ "answer_text": "(B)",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/51/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/51/q.webp
new file mode 100644
index 0000000..69ce400
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/51/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/52/data.json b/frontend/public/assets/gate/cs/questions/2021-M/52/data.json
new file mode 100644
index 0000000..77a3f97
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/52/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "52",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 52 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251535 \n \nConsider the following statements\n1\n \n:\nS\n Every SLR (1) parser parses is unambiguous but there are certain unambiguous grammars that are\nnot SLR (1)\n2\nS\n : For any context-free grammar, there is a parser that takes at most 0(n\n3\n) time to parse a string of\nlength n. \n \nWhich of the following option is/are correct.\n(A) \n1\nS\n is false and \n2\nS\n is false \n(B) \n1\nS\n is true and \n2\nS\n is false\n(C) \n1\nS\n is true and \n2\nS\n is true \n(D) \n1\nS\n is false and \n2\nS\n is true",
+ "answer_text": "(C)",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/52/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/52/q.webp
new file mode 100644
index 0000000..90e23d9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/52/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/53/data.json b/frontend/public/assets/gate/cs/questions/2021-M/53/data.json
new file mode 100644
index 0000000..e4304fe
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/53/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "53",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 53 \n \n \n \n \n \n \n \nMCQ (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251534 \n \nConsider the following statements.\n1\nS\n : The sequence of procedure calls corresponds to a preorder traversal of the activation tree.\n2\nS\n : The sequence of procedure returns corresponds to a postorder traversal of the activation tree.\nWhich one of the following options is correct?\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n33\n\n(A) \n1\nS\n is true and So is true \n(B)\n1\nS\n is true and is false\n(C)\n1\nS\n is false and is true \n(D)\n1\nS\n is false and So is false",
+ "answer_text": "(A)",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/53/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/53/q.webp
new file mode 100644
index 0000000..3eaf269
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/53/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/54/data.json b/frontend/public/assets/gate/cs/questions/2021-M/54/data.json
new file mode 100644
index 0000000..e2f7857
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/54/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "54",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 54 \n \n \n \n \n \n \n \nNAT (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251584 \n \nA sender (S) transmits a signal, which can be one of the two kinds: H and L with probabilities 0.1 and \n0.9 respectively, to a receiver (R). In the graph below, the weight of edge (u, v) is the probability of \nreceiving v when u is transmitted, where u, v \n\u2208\n {H. L}. For example, the probability that the received \nsignal is L given the transmitted signal was H. is 0.7.\nH\nH\n0.3\n0.8\nS\nR\n0.7\n0.2\nIf the received signal is H, the probability that the transmitted signal was H(rounded to 2 decimal places) \nis ________. \nAns. \n0.04\nL\nL",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/54/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/54/q.webp
new file mode 100644
index 0000000..4f03ddc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/54/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/55/data.json b/frontend/public/assets/gate/cs/questions/2021-M/55/data.json
new file mode 100644
index 0000000..80f4977
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/55/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "55",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 55 \n \n \n \n \n \n \n \nNAT (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251579 \n \nConsider the sliding window flow-control protocol operating between a sender and a receiver over a \nfull-duplex error-free link. Assume the following: \n \n\u2022 \nThe time taken for processing the data frame by the receiver is negligible. \n\u2022\n \nThe time taken for processing the acknowledgement frame by the sender is negligible. \n\u2022\n \nThe sender has infinite number of frames available for transmission. \n \n\u2022 \nThe size of the data frame is 2.000 bits and the size of the acknowledgement frame is 10 bits. \n \n\u2022 \nThe link data rate in each direction is 1 Mbps (= 10\n6\n bits per second). \n \n\u2022 \nOne way propagation delay of the link is 100 milliseconds. \nThe minimum value of the sender's window size in terms of the number of frames, (rounded to the \nnearest integer) needed to achieve a link utilization of 50% is ________. \nAns. \n 50 to 52",
+ "answer_text": "",
+ "explanation_text": "Sol. \nPropagation time (tp) = 100 ms\nSData = 2000 bits\nRData = 10 bits\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n34\n\nBW = 1 Mbps\nSender transmission time (ts) = 2000/1000000 = 2 ms\nReceiver transmission time (tr) = 10/1000000 = 0.01 ms\nSender\u2019s window size = ? for 50% link utilisation\n(N X ts)/(ts +tr + 2tp) = 0.5\n= > N X 2 /(2+0.01+2X100) = 0.5\n= > NX2/(202.01) = 0.5\n= > N = 0.5 X 202.01/2 = 50.5\nNearest integer for size of window = 51\n\n\uf076\uf076\uf076\uf076\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/55/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/55/exp.webp
new file mode 100644
index 0000000..c3211b5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/55/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/55/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/55/q.webp
new file mode 100644
index 0000000..050457a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/55/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/6/data.json b/frontend/public/assets/gate/cs/questions/2021-M/6/data.json
new file mode 100644
index 0000000..2d6bde1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/6/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "6",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 6 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251570 \n \nDefine R\nn\n to be the maximum amount earned by cutting a rod of length n meters into one or more pieces \nof integer length and selling them. For i > 0, let p [i] denote the selling price of a rod whose length is i \nmeters. Consider the array of prices: \n \n \n \np[l] = l,p[2] = 5, p[3] = 8,p[4] = 9. p[5] = 10, p[6] = I7,p[7] = 13 \n \nWhich of the following statements is/are correct about R\n7 \n? \n \nOptions : \n \n(A) R\n7 \ncannot be achieved by a solution consisting of three picccs. \n \n(B) R\n7 \nis achieved by three different solutions. \n \n(C) R\n7\n = 19 \n \n(D) R\n7 = \n18 \nAns. \nB, D\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n9\n",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/6/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/6/q.webp
new file mode 100644
index 0000000..63822f0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/6/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/7/data.json b/frontend/public/assets/gate/cs/questions/2021-M/7/data.json
new file mode 100644
index 0000000..1a92450
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/7/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "7",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 7 \n \n \n \n \n \n \n \nMSQ (2M) \n \n \n \n \n \n \n \nQuestion ID : 823251577 \n \nConsider a dynamic hashing approach for 4 big integer keys. \n1. The main hash table size is 4. \n2. The 2 least significant bits of a key is used to index into the main hash table \n3. Initially, the mean hash table entries are empty \n4. Thereafter, when more keys are hashed into it to resolve collisions, the set of all keys corresponding \nto a main hash table entry is organized as a binary tree that grows on demand. \n5. First the 3\nrd\n least significant bit is used to divide the keys into left and right subtrees. \n6. To resolve more collisions, each node of the binary tree is further sub-divided into left and right \nsubtrees based on the 4\nth\n least significant bit. \n7. A split is done only if it is needed i.e. only when there is a collision. \nConsider the following state of the hash table.\n00\n01\n10\n11\n0\n1\nEmpty \n0\n1\n0\n1\nWhich of the following sequence of key insertions can cause the above state of the hash table (assume \nthe key are in decimal notation) \n(A) 9, 5, 10, 6, 7, 1 \n \n \n(B) 10, 9, 6, 7, 5, 13 \n(C) 9, 5, 13, 6, 10, 14 \n \n(D) 5, 9, 4, 13, 10, 7 \nAns. \nB \nSol.\n \nFrom given state of hash table.\n00\n01\n10\n11\n0\n1\n0\n1\nEmpty\n0\n1\n\nFollowing numbers are possible\n\nGATE 2021\n [Forenoon Session]\nComputer Science Engineering\nPAGE\n10\n\n0001-1\n0010-2\nX010\nX001\n1001-9\n1010-10\n0110-6\n0101\n5\nX110\n1110-14\n1101\n13\nXX11\n0011\n0111\n1011\n1111\n\n3\n7\n11\n15\nAmong above possible values only one in each class should be present.\nOnly option matches is (B).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/7/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/7/exp.webp
new file mode 100644
index 0000000..69fd9a7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/7/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/7/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/7/q.webp
new file mode 100644
index 0000000..05a0406
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/7/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/8/data.json b/frontend/public/assets/gate/cs/questions/2021-M/8/data.json
new file mode 100644
index 0000000..e9eaa1a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/8/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "8",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "820",
+ "question_text": "Question 8 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \nQuestion ID : 823251553 \n \nA relation r (A, B) in relational database has 1200 tuples. The attribute A has integer value ranging 6 to \n20 and the attribute B has integer values ranging from 1 to 20. Assume that the attributes A and B \nindependently distributed. The estimated number of tuple in the output of \n(\n10) (\n18)\n(r)\n>\n\u2228\n=\n\u03c3\n A\nB\n \nis ______.",
+ "answer_text": "820",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/8/exp.webp b/frontend/public/assets/gate/cs/questions/2021-M/8/exp.webp
new file mode 100644
index 0000000..0e59ae2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/8/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/8/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/8/q.webp
new file mode 100644
index 0000000..45da11a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/8/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/9/data.json b/frontend/public/assets/gate/cs/questions/2021-M/9/data.json
new file mode 100644
index 0000000..bc0f77f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-M/9/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "9",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-M",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 9 \n \n \n \n \n \n \n \nNAT (1M) \n \n \n \n \n \n \n \n \nQuestion ID : 823251555 \n \nThree processes arrive at time zero with CPU bursts time of 16, 20 & 10 milliseconds. If the scheduler \nhas prior knowledge about the length of CPU bursts, Minimum achievable average waiting time for this \nthree processes in a non-preemptive scheduler (rounded to nearest integer) is______ milliseconds. \nAns. \n12 \nSol. \nGantt chart : \nA \nC \nB \n \n \n \n \n \n \n 0 10 26 46\nAverage \n(0 10\n26)\n36\n12\n3\n3\nWT\n+\n+\n=\n=\n=",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-M/9/q.webp b/frontend/public/assets/gate/cs/questions/2021-M/9/q.webp
new file mode 100644
index 0000000..a203e17
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-M/9/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/1/data.json b/frontend/public/assets/gate/cs/questions/2021-N/1/data.json
new file mode 100644
index 0000000..563ba51
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/1/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "1",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 1. \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513092\nA transparent square sheet shown above is folded along the dotted line. The folded sheet will look\nlike_____\n\n\n(A) \n \n \n \n(B)\n(C) \n \n \n \n(D)",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n \nGiven:\nMirror image of the left part of given image is\nAfter combining both we get,\n\nPAGE\n2\n\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/1/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/1/exp.webp
new file mode 100644
index 0000000..784d1c7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/1/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/1/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/1/q.webp
new file mode 100644
index 0000000..3630d7d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/1/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/10/data.json b/frontend/public/assets/gate/cs/questions/2021-N/10/data.json
new file mode 100644
index 0000000..8a33715
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/10/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "10",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 10. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513099\n\nNo of units\nSerieNet profit (Rs.)\n350\n300\n296\n300\n240\n250\n210\n200\n200\n150\n100\n100\n50\n0\nYear 1\nYear 2\nYear 3\nThe number of units of a product sold in three different years and the respective net profits are \npresented in the figure above. The cost/unit in Year 3 was Rs.1, which was half the cost/unit in Year 2.\n\nPAGE\n7\n\nThe cost/unit in Year 3 was one-third of the cost/unit in Year 1. Taxes were paid on the selling price at \n10%. 13% and 15% respectively for the three years. Net profit is calculated as the difference between \nthe selling price and the sum of cost and taxes paid in that year.\nThe ratio of the selling price in Year 2 to the selling price in Year 3 is________\n\n(A)\n \n3 : 4 (B) 1 : 1\n(C) 1 : 2 (D) 4 : 3",
+ "answer_text": "(D)",
+ "explanation_text": "Sol. \nGiven :\ncost per unit of year 3 = Rs.1\nand Cost per unit of year 3 = (cost per unit of year 2)/2\nSo, cost per unit of year 2 = 2*cost per unit of year 3 = 2*1 = 2.\nLet selling price of year 2 = sp2 and selling price of year 3 = sp3.\nwe have taxes in year 2 and 3 as 13% and 15% of selling price respectively.\nTax in year 2 = 13*sp2/100 =.13*sp2\nTax in year 3 = 15*sp3/100 = 0 .15*sp3\nprofit in year 2 = selling price in year 2\u2212(cost of all units +tax in year 2)\n296 = sp2\u2212(200*2+0.13*sp2)\n296 = sp2\u2212400\u22120.13sp2\n296+400 = 0.87*sp2\n696*100/87 = sp2\nsp2 = 800.\nprofit in year 3 = selling price in year 3\u2212(cost of all units +tax in year 3)\n210 = sp3\u2212(300*1+0.15*sp3)\n210 = sp3\u2212300\u22120.15sp3\n210+300 = 0.85*sp3\n510*100/85 = sp3\nsp3 = 600.\nRatio of selling price in year 2 to selling price in year 3\n= 800/600\n= 4/3\n.\nTechnical Section\n."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/10/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/10/exp.webp
new file mode 100644
index 0000000..8b74f77
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/10/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/10/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/10/q.webp
new file mode 100644
index 0000000..22bf91c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/10/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/11/data.json b/frontend/public/assets/gate/cs/questions/2021-N/11/data.json
new file mode 100644
index 0000000..e0a08c7
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/11/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "11",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "15",
+ "question_text": "Question 11. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513123\n\nPAGE\n8\n\nConsider the following ANSI C function:\nint SomeFunction (int x, int y)\n{\nif \n(\n1) || (\n1))\nx\ny\n==\n==\n return 1;\nif \n(\n)\nx\ny\n==\n return x;\nif \n(\n)\nx\ny\n\uf03e\n return SomeFunction\n(\n, )\nx\ny y\n\u2212\n;\nif \n(\n)\ny\nx\n\uf03e\n return SomeFunction\n( ,\n)\nx y\nx\n\u2212\n;\n}\nThe value returned by SomeFunction(15, 255) is ______",
+ "answer_text": "15",
+ "explanation_text": "Sol. \n Given:\nint SomeFunction (int x, int y)\n{\nif \n(\n1) || (\n1))\nx\ny\n==\n==\n return 1; \n\u2026(1)\nif \n(\n)\nx\ny\n==\n return x; \n \n\u2026(2)\nif \n(\n)\nx\ny\n\uf03e\n return SomeFunction\n(\n, )\nx\ny y\n\u2212\n; \n\u2026(3)\nif \n(\n)\ny\nx\n\uf03e\n return SomeFunction\n( ,\n)\nx y\nx\n\u2212\n; \n\u2026(4)\n}\nNow, after calling\nSomeFunction(15, 255)\n{255 > 15} Therefore line (3) will execute.\nSomeFunction(15, 240)\n{240 > 15} Therefore line (3) will execute.\nSomeFunction(15, 225)\n{225 > 15} Therefore line (3) will execute.\nSomeFunction(15, 210)\n{210 > 15} Therefore line (3) will execute.\n\u205d\nSomeFunction(15, 15)\n{15 == 15} Therefore line (2) will execute.\nHence the function call will return 15"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/11/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/11/exp.webp
new file mode 100644
index 0000000..4a5a43c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/11/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/11/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/11/q.webp
new file mode 100644
index 0000000..0097a03
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/11/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/12/data.json b/frontend/public/assets/gate/cs/questions/2021-N/12/data.json
new file mode 100644
index 0000000..d02a9e8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/12/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "12",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "60",
+ "question_text": "Question 12. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID : 8232513149\n\nPAGE\n9\n\nConsider the following ANSI C program.\n#include \nint foo(int x, int y, int q)\n{if ((x <= 0) && (y <= 0))\nreturn q;\nif (x <= 0)\nreturn foo(x, y-q, q);\nif (y <= 0)\nreturn foo(x-q, y, q);\nreturn foo(x, y-q, q) + foo(x-q, y,q)\nint main()\n{\nint r = foo(15,15,10);\nprintf ('\"/.d\", r) ;\nreturn 0;\n}\nThe output of the program upon execution is __________",
+ "answer_text": "60",
+ "explanation_text": "Sol.\n30\n30\nfoo (15,15,10) = 60\n+\nfoo (15,5,10)\nfoo (5,15,10)\n10\n20\n20\n10\n+\nfoo (15,-5,10)\nfoo (5,5,10)\nfoo (5,5,10)\nfoo (-5,15,10)\n+\nfoo (5,-5,10)\nfoo (5,-5,10)\nfoo (-5,5,10)\nfoo (5,-5,10)\nfoo (-5,5,10)\nfoo (-5,5,10)\n+\n+\nfoo (-5,-5,10)\nfoo (-5,-5,10)\nfoo (-5,-5,10)\nfoo (-5,-5,10)\nfoo (-5,-5,10)\nfoo (-5,-5,10)\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/12/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/12/exp.webp
new file mode 100644
index 0000000..529a37d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/12/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/12/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/12/q.webp
new file mode 100644
index 0000000..8fd1443
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/12/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/13/data.json b/frontend/public/assets/gate/cs/questions/2021-N/13/data.json
new file mode 100644
index 0000000..25147cf
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/13/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "13",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 13. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513116\n\nPAGE\n10\n\nConsider a complete binary tree with 7 nodes. Let A denote the set of first 3 elements obtained by \nperforming BFS starting from root. Let B denote the set of 3 elements obtained by performing DFS \nstate starting from root. The value of \nA\nB\n\u2212\n is_____\nAns \n1",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n consider the following complete binary tree\na\nb\nc\nd\ne\nf\ng\nA = set of first 3 elements obtained by BFS\nA = {a, b, c}\nB = set of first 3 elements obtained by DFS\nB = {a, b, d}\nA \u2212B\n = {c}\n|\n A \u2212B| = 1"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/13/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/13/exp.webp
new file mode 100644
index 0000000..2487935
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/13/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/13/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/13/q.webp
new file mode 100644
index 0000000..a2c8b56
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/13/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/14/data.json b/frontend/public/assets/gate/cs/questions/2021-N/14/data.json
new file mode 100644
index 0000000..e5f6b1e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/14/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "14",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 14. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513135\nConsider the following ANSI C program:\n#include \n#include \nstruct Node{\nint value;\nstruct Node *next;}; \nint main(){\nstruct Node *boxE, *head, *boxN; int index = 0;\nboxE = head = (struct Node *) malloc(sizeof(struct Node));\nhead->value = index;\nfor (index = 1; index <= 3; index++)\n{\nboxN = (struct Node *) malloc(sizeof(struct Node)); \nboxE->next = boxN; \nboxN->value = index; \nboxE = boxN; }\nfor (index = 0; index <= 3; index++) {\n\nPAGE\n11\n\nprintf (\"Value at index %d is %d\\n\", index, head->value);\nhead = head->next;\nprintf (\"Value at index %d is %d\\n\", index+1, head->value); } }\nWhich one of the statements below is correct about the program?\n(A) Upon execution, the program goes into an infinite loop.\n(B) It has a missing return which will be reported as an error by the compiler.\n(C) Upon execution, the program creates a linked-list of five nodes.\n(D) It dereferences an uninitialized pointer that may result in a run-time error.",
+ "answer_text": "(D)",
+ "explanation_text": "Sol.\n \nThe linked list of four nodes will be created.\nFirst node: value = 0\nSecond node : value = 1\nThird node : value = 2\nFourth node : value = 3\nThe last for loop will print the index number and the values\nIn the last iteration when index = 3\nhead = head-> next // typing to access the unknown memory location because the fifth node is not \nthere.\nHence the segmentation fault or run time error will come here."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/14/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/14/exp.webp
new file mode 100644
index 0000000..3b8c0d4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/14/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/14/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/14/q.webp
new file mode 100644
index 0000000..359e7ad
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/14/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/15/data.json b/frontend/public/assets/gate/cs/questions/2021-N/15/data.json
new file mode 100644
index 0000000..ff7cf05
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/15/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "15",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 15. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513102\nLet H be a binary min-heap consisting of n elements implemented as an array. What is the worst\ncase time complexity of an optimal algorithm to find the maximum element in \nH\n/?\n(A) \n(log )\nn\n\uf051\n(B) \n(1)\n\uf051\n(C) \n( log )\nn\nn\n\uf051\n(D) \n( )\nn\n\uf051",
+ "answer_text": "(D)",
+ "explanation_text": "Sol.\n \nIn a min heap maximum element is present at leaf node we need to navigate through the leaf node i.e.\nn/2 node Hence O(n)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/15/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/15/exp.webp
new file mode 100644
index 0000000..c80efb5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/15/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/15/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/15/q.webp
new file mode 100644
index 0000000..0e6e52d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/15/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/16/data.json b/frontend/public/assets/gate/cs/questions/2021-N/16/data.json
new file mode 100644
index 0000000..daefe46
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/16/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "16",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 16. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513110\nConsider the following ANSI C program:\nint main( )\n\nPAGE\n12\n\n{ int a[4][5];\nint i, j;\nfor (i = 0; i < 4; i++)\nfor (J = 0; j < 5; j++)\na[i][j] = 10 * i + j;\nprintf (\"%d\",*(a[1] + 9));}\nFind the output of the above problem\n(A)\n 20 \n(B)\n 24 \n(C) \n30 \n(D)\n 14",
+ "answer_text": "(B)",
+ "explanation_text": "Sol. \nAfter the execution of program the content of the array will be\n[0] [1] [2] [3] [4]\n[0] 0 \n1 \n2 \n3 \n4\n[1] 10 \n11 \n12 \n13 \n14\n[2] 20 \n21 \n22 \n23 \n24\n[3] 30 \n31 \n32 \n33 \n34\n*(a[1] + 9) = a[2][4] = 24"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/16/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/16/exp.webp
new file mode 100644
index 0000000..78ff6cc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/16/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/16/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/16/q.webp
new file mode 100644
index 0000000..1acb495
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/16/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/17/data.json b/frontend/public/assets/gate/cs/questions/2021-N/17/data.json
new file mode 100644
index 0000000..a348477
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/17/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "17",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 17. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513126\nConsider string aabbccddeee . Each letter of a string must be assigned a binary code satisfying the \nfollowing properties.\n1. \nFor any two letters the code to one letter must be a prefix of code assigned to another \nletter.\n2. \n For any two letters of the same frequency , the letter which occurs earlier in the \ndictionary order is assigned a code whose length is at most the length of code assigned \nto another letter.\nAmong a set of all binary code assignments which satisfy above two properties. What is the length of \nthe encoded string?\n(A) 25 \n \n \n \n(B) 23\n(C) 21 \n \n \n \n(D) 30\nAns (B)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nUsing Huffman Coding-\n\nPAGE\n13\n\n10\n1\n0\n4\n6\n1\n0\n0\n1\nc(2)\nd(2)\n3\ne(3)\n1\n0\na(1)\nb(2)\nCharacter Frequency Encoding\na \n1 \n100\nb \n2 \n101\nc \n2 \n00\nd \n2 \n01\ne \n3 \n11\nHence length of encode string is = 1*3+2*3+2*2+2*2+3*2 = 3+6+4+4+6 = 23"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/17/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/17/exp.webp
new file mode 100644
index 0000000..7f4bcfd
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/17/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/17/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/17/q.webp
new file mode 100644
index 0000000..e25f9a6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/17/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/18/data.json b/frontend/public/assets/gate/cs/questions/2021-N/18/data.json
new file mode 100644
index 0000000..3c880f9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/18/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "18",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 18. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513139\nFor constants \n1\na\n \uf0b3\n and \n1\nb\n \uf03e\n, consider the following recurrence defined on the non-negative \nintegers:\n( )\n( )\nn\nT n\na T\nf n\nb\n\uf0e6\n\uf0f6\n=\n\uf0d7\n+\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nWhich of the following options is correct about the recurrence \n( )?\nT n\nlog ( )\n(\n),\nb\n \na\nn\n\uf051\n then\nlog ( )\n( )is\n(\n)\nb\n \na\nT n\nn\n\uf051\n(A) if \n( )\nf n\n is\n\u2212\uf065\n\uf051\n for some \n0\n\uf065\uf03e\n then,\nlog ( )\n( )is\n(\n)\nb\n \na\nT n\nn\n\uf051\nlog ( )\n(\n),\nb\n \na\nn\n(B) if \n( )\nf n\n is\nn\nn\n \n, then \n2\n( )is\n(log ( ))\nT n\nn\n\uf051\n(C) if \n( )\nf n\n is\n2\nlog ( )\n(D) if \n( )\nf n\n is \n2\nlog ( ),\nn\nn\n then, \n2\n( )is\n( log\n))\nT n\nn\nn\n\uf051",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\n \n If we take a = 2, b = 2, on applying extended master theorem A, C, D are false hence option B is\ncorrect."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/18/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/18/exp.webp
new file mode 100644
index 0000000..3018945
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/18/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/18/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/18/q.webp
new file mode 100644
index 0000000..74976a1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/18/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/19/data.json b/frontend/public/assets/gate/cs/questions/2021-N/19/data.json
new file mode 100644
index 0000000..89dc78c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/19/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "19",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 19. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513101\n\nPAGE\n14\n\nLet G be a connected undirected weighted graph consider the following to statements.\nS\n1\n. There exists a minimum edge weight in G which is present in every MST of G.\nS\n2\n. If every edge in G has distinct weights, then G has a unique MST.\nWhich of the following is true?\n(A)\n S\n1 \nis true and S\n2\n is false \n(B)\n S\n1 \nis false and S\n2\n is true\n(C)\n Both S\n1 \nand II are true \n \n(D)\n Both S\n1 \nand II are false",
+ "answer_text": "(B)",
+ "explanation_text": "Sol. \nGiven:\n G is a connected undirected weighted graph\nBy using Kruskal\u2019s algorithm to find MST, we sort the edges based on their weight and start \nselective edges from the smallest weight (w_small for example). \nProblem with S1: If we have multiple copies of w_small, then a specific w_small weighted edge is \nnot guaranteed to be selected by Kruskal. \nS2 is Correct: If the sorted order of the edges contains only distinct values, the Kruskal algorithm \nwill always select a unique set of edges resulting in an unique minimum spanning tree."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/19/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/19/exp.webp
new file mode 100644
index 0000000..605dc0b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/19/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/19/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/19/q.webp
new file mode 100644
index 0000000..8b44169
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/19/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/2/data.json b/frontend/public/assets/gate/cs/questions/2021-N/2/data.json
new file mode 100644
index 0000000..6df8628
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/2/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "2",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 2. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513093\nIf \n\uf071\n is the angle, in degree, between the longest diagonal of the cube and any one of the edges of the\ncube, then \ncos\n\uf071\n=\n(A) \n1\n(B) \n1\n(C) \n1\n2\n \n (D) \n3\n2\n3\n2",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n\uf071\n\nAdjacent side\ncos\nHyp\n\uf071=\n\nDiagonal of a cube \n3\na\n=\n\nAdjacent side = Each side = \na\n\uf05c\n \n1\ncos\n3\n3\na\na\n\uf071=\n="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/2/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/2/exp.webp
new file mode 100644
index 0000000..1455e79
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/2/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/2/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/2/q.webp
new file mode 100644
index 0000000..757711b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/2/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/20/data.json b/frontend/public/assets/gate/cs/questions/2021-N/20/data.json
new file mode 100644
index 0000000..9dfd259
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/20/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "20",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 20. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513108\nWhat is the worst case number of arithmetic operations performed by recursive binary search on a \nsorted array of size n?\n2\n(n )\n\uf051\n \n(B)\n\uf051\n( \n2\nlog\n n\n )\n(A)\n(C)\n\uf051\n(n) \n(D)\n(\n)\nn\n\uf051",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\n \nThe worst case occurs when we are searching for a key that is smaller than the smallest element of \nthe array or larger than the largest element of the array."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/20/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/20/exp.webp
new file mode 100644
index 0000000..0fc5864
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/20/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/20/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/20/q.webp
new file mode 100644
index 0000000..7448e57
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/20/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/21/data.json b/frontend/public/assets/gate/cs/questions/2021-N/21/data.json
new file mode 100644
index 0000000..c1ad044
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/21/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "21",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "6",
+ "question_text": "Question 21. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID : 8232513152\nConsider a Boolean function \n( , , , )\nf w x y z\n such that\n( ,0,0, )\nf w\nz\n(1, ,1, )\n2\nf\nx\nz\nx\n=\n+\n( ,1, , )\n2\nf w\ny z\nw\ny\n=\n+\nThe number of literals in the minimal sum of products expression of f is ______.",
+ "answer_text": "6",
+ "explanation_text": "Sol.\n\nPAGE\n15\n\nxy\nxy\nwz\n+\n+\nTherefore, 6 literal are possible\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/21/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/21/exp.webp
new file mode 100644
index 0000000..071c827
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/21/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/21/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/21/q.webp
new file mode 100644
index 0000000..f96a7ec
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/21/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/22/data.json b/frontend/public/assets/gate/cs/questions/2021-N/22/data.json
new file mode 100644
index 0000000..905aa37
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/22/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "22",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "3",
+ "question_text": "Question 22. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513118\nIf x and y are two decimal digits and \n2\n10\n(0.1101)\n(0.8\n5)\nxy\n=\n, the decimal value of \nx\ny\n+\n is\n____",
+ "answer_text": "3",
+ "explanation_text": "Sol.\n \n \n2\n(0.1101)\n1\n2\n4\n2\n2\n2\n\u2212\n\u2212\n\u2212\n=\n+\n+\n0.0625 0.25 0.5\n=\n+\n+\n10\n(0.8125)\n1\nx\n =\n2\ny\n =\n3\nx\ny\n+\n="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/22/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/22/exp.webp
new file mode 100644
index 0000000..7db2be3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/22/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/22/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/22/q.webp
new file mode 100644
index 0000000..247c25c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/22/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/23/data.json b/frontend/public/assets/gate/cs/questions/2021-N/23/data.json
new file mode 100644
index 0000000..e42ab58
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/23/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "23",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 23. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513128\n\nPAGE\n16\n\nSuppose we want to design a synchronous circuit that processes a string of 0's and 1\u2019s. Given a \nstring, it produces another string by replacing the first 1 in any subsequence of consecutive 1\u2019s by a \n0. Consider the following example.\nInput sequence: 00100011000011100\nOutput sequence: 00000001000001100\nA Mealy Machine is a state machine where both the next state and the output are functions of the \npresent state and the current input.\nThe above mentioned circuit can be designed as a two-state Mealy machine. The states in the Mealv \nmachine can be represented using Boolean values 0 and 1. We denote the current state, the next state, \nthe next incoming bit, and the output bit of the Mealv machine by the variables s, t, b and y \nrespectively. Assume the initial state of the Mealv machine is 0.\nWhat are the Boolean expressions corresponding to t and y in terms of .s and b?\n(A) \nt\nb\ny\nsb\n=\n=\n(B) \nt\ns\nb\ny\nsb\n=\n+\n=\n=\n(C) \nt\nb\n=\ny\nsb\n(D) \nt\ns\nb\ny\nsb\n=\n+\n=",
+ "answer_text": "(C)",
+ "explanation_text": "Sol.\nPresent State (\ns\n) Next State (\nt\n) O/P (\ny\n)\nb = \n0\n \nb\n = 1\n0 \n0,0 \n1,0\n1 \n0,0 \n1,1\nt\nsb\nsb\nb\ny\nsb\n=\n+\n=\n="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/23/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/23/exp.webp
new file mode 100644
index 0000000..8ada0d7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/23/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/23/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/23/q.webp
new file mode 100644
index 0000000..a068a57
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/23/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/24/data.json b/frontend/public/assets/gate/cs/questions/2021-N/24/data.json
new file mode 100644
index 0000000..8646157
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/24/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "24",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 24. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513104\n\nPAGE\n17\n\nThe format of the single-precision floating-point representation of a real number as per the IEEE 754 \nstandard is as follows:\n\nsign\nexponent\nmantissa\n\nWhich one of \nthe following choices is correct with respect to \nthe smallest normalized \npositive number represented using the standard?\n(A) exponent = 00000000 and mantissa = 00000000000000000000000\n(B) exponent = 00000001 and mantissa = 00000000000000000000001\n(C) exponent = 00000001 and mantissa = 00000000000000000000000\n(D) exponent = 00000000 and mantissa = 00000000000000000000001",
+ "answer_text": "(C)",
+ "explanation_text": "Sol.\n \nFor smallest positives number, the value of sign bit, exponent, and mantissa will be\nSign bit \n0\nS\n =\nExponent \n1 0000001\nE\n = =\nMantissa \n0\n0.00\nM\n =\n=\nTherefore, the number will be \n1.0\n+\n to\n1 27\n126\n2\n2\n\u2212\n\u2212\n="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/24/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/24/exp.webp
new file mode 100644
index 0000000..b969613
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/24/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/24/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/24/q.webp
new file mode 100644
index 0000000..5168a73
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/24/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/25/data.json b/frontend/public/assets/gate/cs/questions/2021-N/25/data.json
new file mode 100644
index 0000000..d0f1196
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/25/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "25",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(B), (D)",
+ "question_text": "Question 25. \n \n \n \n \n \n \n \n \nMSQ (2M)\nQuestion ID : 8232513144\nIf the numerical value of 2-byte unsigned integer on a little endian computer is 255 more than that on \nbig endian computer, which of the following choice represent(s) the unsigned integer on a little \nendian\n(A)\n0 4243\n\uf0b4\n \n(B) \n0 6665\n\uf0b4\n \n(C) \n0 0001\n\uf0b4\n \n(D) \n0 0100\n\uf0b4",
+ "answer_text": "(B), (D)",
+ "explanation_text": "Sol.\n \n (A) LE - 4243\n=49161'3 + 2*16^2 + 4*16A1 + 3\n= 16963 BE - 4342 = =4*16^3 + 3'161'2 + 416^1 + 2\n= 17218 (incorrect)\n(B) LE - 6665 = =6'161'3 + 6*16^2 + 6*16^1 + 5\n= 26213 BE - 6566 \u2013\n=6*16^3 + 5*16^2 + 6*16^1 + 6\n=25958 Difference\n= 26213 - 25958 = 255 (correct)\n(C) LE - 0001 - 1 BE - 0100 - 256 (larger hence incorrect)\n(D) little endian\n\nPAGE\n18\n\n= 0100 = 16\"2 = 256\nBig endian = 0001 = 1 ,\ndifference = 256-1= 255 correct."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/25/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/25/exp.webp
new file mode 100644
index 0000000..5c94bc4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/25/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/25/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/25/q.webp
new file mode 100644
index 0000000..4c1eb68
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/25/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/26/data.json b/frontend/public/assets/gate/cs/questions/2021-N/26/data.json
new file mode 100644
index 0000000..2c2c17c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/26/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "26",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(B), (D)\n \n(B)",
+ "question_text": "Question 26. \n \n \n \n \n \n \n \n \nMSQ (2M)\nQuestion ID : 8232513142\nConsider the following multi-threaded code segment (in a mix of C and pseudo-code), invoked by \ntwo processes P1 and P2, and each of the processes spawns two threads T1 and T2:\nint x = 0; \n // global \nLock L1; \n// global \nmain() {\ncreate a thread to execute foo(); \n// Thread T1 \ncreate a thread to execute foo(); \n// Thread T2 \nwait for the two threads to finish execution; \nprint (x);}\nfoo() {\nint y = 0; \nAcquire L1; \nx = x + 1; \ny - y + 1; \nRelease L1; \nprint (y);}\nWhich of the following statement(s) is/are correct?\n(A) At least one of P1 and P2 will print the value of x as 4.\n(B) Both P1 and P2 will print the value of x as 2.\n(C) At least one of the threads will print the value of y as 2.\n(D) Both T1 and T2, in both the processes, will print the value of y as 1.",
+ "answer_text": "(B), (D)\n \n(B)",
+ "explanation_text": "Sol. \nEach process has its own address space. \n1.\n \nP1:\nTwo threads T\n11\n,T\n12\n are created in main. \nBoth execute foo function and threads don\u2019t wait for each other. Due to explicit locking mechanism \nhere mutual exclusion is there and hence no race condition inside foo(). \ny being thread local, both the threads will print the value of y as 1. \nDue to the wait in main, the print(x) will happen only after both the threads finish. So, x will have \nbecome 2. \nPS: Even if x was not assigned 0 explicitly in C all global and static variables are initialized \nto 0 value. \n2.\n \nP2:\n\nPAGE\n19\n\nSame thing happens here as P1 as this is a different process. For sharing data among different \nprocesses mechanisms like shared memory, files, sockets etc must be used\n. \nQuestion 27. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513105\nWhich one of the following circuits implements the Boolean function given below?\n0\n1\n3\n4\n5\n6\n( , , )\n,\nf x y z\nm\nm\nm\nm\nm\nm\n=\n+\n+\n+\n+\n+\n where \ni\nm\n is the \ni\nth\n minterm\n1\n0\nx\n0\n1\n1\n1\n1\n4 1\n\uf0b4\nf\n4 1\n\uf0b4\nf\nx\n2\nMux\n'\nx\n2\nMux\n'\nx\n3\n3\n1\n1\ns\n0\ns\n1\ns\n0\ns\ny\nz\ny\nz\n(A) \n \n \n(B)\n'\nx\n1\n0\n0\n1\n1\n1\n1\n4 1\n\uf0b4\n4 1\n\uf0b4\nf\nf\nx\n2\nMux\n2\nMux\n'\nx\n3\nx\n1\n3\n1\ns\n1\ns\n0\ns\n0\ns\ny\nz\ny\nz\n(C) \n \n \n(D)\nSol. \n(0,1,3,4,5,6)\nm\n\uf0e5\n=\nHence, the correct option is (B)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/26/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/26/exp.webp
new file mode 100644
index 0000000..017ee9c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/26/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/26/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/26/q.webp
new file mode 100644
index 0000000..06c786e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/26/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/28/data.json b/frontend/public/assets/gate/cs/questions/2021-N/28/data.json
new file mode 100644
index 0000000..d9f8690
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/28/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "28",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(A), (C),(D)",
+ "question_text": "Question 28. \n \n \n \n \n \n \n \n \nMSQ (2M)\nQuestion ID : 8232513143\n\nPAGE\n20\n\nConsider a computer system with multiple shared resource types, with one instance per resource \ntype. Each instance can be owned by only one process at a time. Owning and freeing of resources are \ndone by holding a global lock (L). The following scheme is used to own a resource instance:\nfunction\n \nOwnRESOURCE(Resource\n \nR)\nAcquire lock L // a global lock\nif R is available then\nAcquire\n \nR\nRelease lock L\nelse\nif R is owned by another process P then\nTerminate P, after releasing all resources owned by P\nAcquire R\nRestart P\nRelease lock L\nend if\nend if\nend function\nWhich of the following choice(s) about the above scheme is/are correct?\n(A) The scheme ensures that deadlocks will not occur.\n(B) The scheme violates the mutual exclusion property.\n(C) The scheme may lead to live-lock.\n(D) The scheme may lead to starvation.",
+ "answer_text": "(A), (C),(D)",
+ "explanation_text": "Sol. \nMutual exclusion is not violated.\nAlso, there will be no deadlock because of forceful preemption of resources.\nThis may lead to starvation if the process is keeps on coming and preempting each other like P1 is \npreempted by P2 and P2 is preempted by P3.\nLive-lock is also possible due to continuous preemption of resources.\nFor option (c) consider two processes P1 and P2 now P1 enter the code acquires lock and resource.\nNow P2 enters the else part kills P1 and acquire R and restart P1 Now P1 again acquire lock and kills \nthe process P2 this continues creating a live lock scenario but there is ambiguity in the code since \n\u201cRelease R\" is not written anywhere so ambiguity is regarding how the process will release Resource \nR. According to the code, the only way to release the resource is by getting killed."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/28/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/28/exp.webp
new file mode 100644
index 0000000..be4da1c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/28/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/28/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/28/q.webp
new file mode 100644
index 0000000..27fa19f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/28/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/29/data.json b/frontend/public/assets/gate/cs/questions/2021-N/29/data.json
new file mode 100644
index 0000000..39e57af
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/29/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "29",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(A), (B), (D)",
+ "question_text": "Question 29. \n \n \n \n \n \n \n \n \nMSQ (1M)\nQuestion ID : 8232513114\nWhich of the following statements is/are correct in the context of CPU scheduling?\n\nPAGE\n21\n\n(A) Round Robin policy can be used even when the CPU time required by each of the processes is \nnot known in apriori.\n(B) Implementing preemptive scheduling needs hardware support.\n(C) The goal is to only maximize CPU utilization and minimize throughput.\n(D) Turnaround time includes waiting time.",
+ "answer_text": "(A), (B), (D)",
+ "explanation_text": "Sol.\n \nOption A: Round Robin policy can be used even when the CPU time required by each of the \nprocesses is not known in apriori. This is True because Round Robin policy depends on time \nquantum.\nOption B: Implementing preemptive scheduling needs hardware support. This is True because \npreemption needs interrupt to occur.\nOption C: The goal is to only maximize CPU utilization and minimize throughput, this is False\nOption D: True, because turn around time = WT+BT"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/29/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/29/exp.webp
new file mode 100644
index 0000000..11b784b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/29/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/29/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/29/q.webp
new file mode 100644
index 0000000..9cfb819
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/29/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/3/data.json b/frontend/public/assets/gate/cs/questions/2021-N/3/data.json
new file mode 100644
index 0000000..2f3511c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/3/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "3",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 3. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513098\nThe number of students in three classes is in the ratio 3 : 13 : 6. If 18 students are added to each\nclass, the ratio changes to 15 : 35 : 21.\nThe total number of students in all the three classes in the beginning was:\n(A)\n \n110 \n(B) 66 (C) 22 \n(D) 88",
+ "answer_text": "(D)",
+ "explanation_text": "Sol. \nGiven :\nThe ratio of number of students of three classes is \n3:13:6\n=\nLet the number of students in each class is \n3 ,13 ,6\nx\nx\nx\n\nPAGE\n3\n\nTherefore the ratio will become\n3 :13 :6\nx\nx\nx\nAfter implementing the given condition,\n3\n18\n15\nx\ny\n+\n=\n \n \n \n \n\u2026(i)\n13\n18\n35\nx\ny\n+\n=\n18\n21\nx\ny\n+\n=\n \n \n \n \n\u2026(ii)\n2 3\n18 2\n15\n2\nx\ny\n\uf0b4\n+\n\uf0b4\n=\n\uf0b4\n6\n18\n21\nx\ny\n+\n=\n6\n36\n30\nx\ny\n+\n=\n6\n18\n21\nx\ny\n+\n=\n4\nx\n =\n \n2\ny\n =\n\uf05c\n The total number students in all the three classes in the beginning\n22\n22 4\n88\nx\n=\n=\n\uf0b4="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/3/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/3/exp.webp
new file mode 100644
index 0000000..d69b606
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/3/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/3/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/3/q.webp
new file mode 100644
index 0000000..0bc1052
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/3/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/30/data.json b/frontend/public/assets/gate/cs/questions/2021-N/30/data.json
new file mode 100644
index 0000000..44c1539
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/30/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "30",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "1.87 to 1.88",
+ "question_text": "Question 30. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID : 8232513153\nConsider a pipelined processor with 5 stages, Instruction Fetch (IF), Instruction Decode (ID). \nExecute (EX), Memory Access (MEM), and Write Back (WB). Each stage of the pipeline, except the \nEX-stage, takes one cycle. Assume that the ID stage merely decodes the instruction and the register \nread is performed in the EX-stage. The EX-stage takes one cycle for ADD instruction and two cycles \nfor MUL instruction. Ignore pipeline register latencies. \nConsider the following sequence of 8 instructions:\nADD, MUL, ADD, MUL, ADD, MUL, ADD, MUL\nAssume that every MUL instruction is data-dependent on the ADD instruction just before it and \nevery ADD instruction (except the first ADD) is data-dependent on the MUL instruction just before \nit. The Speedup is defined as follows:\n\nSpeedup = \nExecution time without operand forwarding\nExecution time with operand forwarding\nThe Speedup achieved in executing the given instruction sequence 011 the pipelined processor \n(rounded to 2 decimal places) is_____",
+ "answer_text": "1.87 to 1.88",
+ "explanation_text": "Sol.\n \nExecution cycle without operand forwarding = 30\nExecution cycle with operand forwarding = 16\nSpeed up = 30/16 = 1.875"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/30/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/30/exp.webp
new file mode 100644
index 0000000..cf1e543
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/30/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/30/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/30/q.webp
new file mode 100644
index 0000000..56c7ad5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/30/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/31/data.json b/frontend/public/assets/gate/cs/questions/2021-N/31/data.json
new file mode 100644
index 0000000..4501710
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/31/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "31",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "80000",
+ "question_text": "Question 31. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513120\n\nPAGE\n22\n\nConsider a computer system with DMA support. The DMA module is transferring one 8-bit character \nin one CPU cycle from a device to memory through cycle stealing at regular intervals. Consider a 2 \nMHz processor. If 0.5% processor cycles are used for DMA, the data transfer rate of the device is \nbits per second.",
+ "answer_text": "80000",
+ "explanation_text": "Sol.\n \nCPU cycles stolen in DMA is = data transfer time/data preparation time\n\uf0f0\n \n0.5% of processor cycles are used or stolen\nprocessor speed= 2MHz\n\uf0f0\n \nCycle time = \u00bd MHz = 0.5 \n\u03bc\ns \n\uf0f0\n \nIn one sec = 1/0.5*\n10\n\u22126\n= 2 MIPS\nTime for One byte transfer =(1/2*\n10\n6\n)\nLet X is the device transfer rate\n\uf0f0\n \n0.5 = data transfer time / data preparation time \n\uf0f0\n \n0.5 = ((1/2*\n10\n6\n)/ (1/X))*100 \n\uf0f0\n \n1 MIPS (in bytes)\nDevice transfer rate is 8*\n10\n4\n bit per second."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/31/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/31/exp.webp
new file mode 100644
index 0000000..af98eaf
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/31/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/31/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/31/q.webp
new file mode 100644
index 0000000..27b14b3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/31/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/32/data.json b/frontend/public/assets/gate/cs/questions/2021-N/32/data.json
new file mode 100644
index 0000000..634b966
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/32/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "32",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "4108",
+ "question_text": "Question 32. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID : 8232513148\nConsider a three-level page table to translate a 39 bits virtual address to a physical address\nAs shown below:\nLevel 1 \noffset\nLevel 2 \noffset\nLevel 3 \noffset\nPage \nOffset\n9 bits\n \n9 bits \n9 bits \n12 bits\n\nThe page size is 4KB (1 KB= 2^10 bytes) and page table entry size at every level is 8 bytes. A\nProcess P is currently using 2GB (1 GB=2^30 bytes) virtual memory which is mapped to 2GB\nOf physical memory. The minimum amount of memory required for the page table of P across\nAll level is_____ KB.",
+ "answer_text": "4108",
+ "explanation_text": "Sol.\n \nGiven : \nVirtual address(VA) = 39 bits \nPage size = 4 KB \nPhysical address(PA) = 2 GB \nPage table entry size(PTE) = 8 B \nThree level pages tables with address division (9,9,9,12) : \nThree level pages tables with address division (9,9,9,12) means :\n\nPAGE\n23\n\n9 most significant bits for indexing into the level-1(outer level) , 9 bits for the level-2 index, 9 bits for \nthe level-3 index, and again 12 bits for the offset within a page. The entries of the level-1 page table \nare pointers to a level-2 page table, the entries of the level-2 page table are pointers to a level-3 page \ntable, and the entries of the level-3 page table are PTEs that contain actual frame number where our \ndesired word resides. \n9 bits for a level means 29 entries in one page table of that level. \nFor our process P : \nP is using 2 GB of its VM. The rest of its VM is unused. \n2 GB VM will have 2GB/4KB=219Pages. \nBut level 3 page table has only 29 entries, so, one page table of level 3 can point to 29 pages of VM \nonly, So, we need 210 level-3 page tables of process P. \nSo, at level-3, we have 210 page tables, So, we need 210 entries in Level-2 But level 2 page table has \nonly 29 entries, so, one page table of level 2 can only point to 29 page tables of level-3, So, we \nneed 2 level-2 page tables. \nSo, we need 1 Level-1 page table to point to level-2 page tables. \nSo, For process P, we need only 1 Level-1 page table, 2 level-2 page tables, and 210 level-3 page \ntables. \nNote that All the page tables, at every level, have same size which is 29\u00d78B=212B=4KB \n(Because every page table at every level has 29 entries and Page table entry size at every level is 8B ) \nSo, in total, we need 1+2+210 page tables (1 Level-1, 2 Level-2, 210 level-3), and each page table \nsize is 4KB \nSo, total page tables size = 1027\u00d74KB = 4108KB \nSo, answer is 4108."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/32/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/32/exp.webp
new file mode 100644
index 0000000..9d3515e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/32/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/32/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/32/q.webp
new file mode 100644
index 0000000..81f8368
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/32/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/33/data.json b/frontend/public/assets/gate/cs/questions/2021-N/33/data.json
new file mode 100644
index 0000000..c882dc1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/33/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "33",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 33. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513136\nConsider the following two statements about regular languages: \n \nS\n1\n: For every infinite regular language there exists a subset of language which is undecidable. \n \nS\n2\n: Every finite language is regular. \n \nWhich of the following choices is correct? \n \n(A) Both S\n1\n and S\n2 \nare true \n \n \n(B)Only S\n1\n is true \n \n(C) Only S\n2\n is true \n \n(D) Neither S\n1\n nor S\n2 \nis true \nAns. (A) \nSol. \nS1:\nEvery infinite regular language contains an undecidable language as subset.\nTrue\nIf we consider infinite regular language set as L. As per definition L has infinite many strings.\n\nPAGE\n24\n\nWe know, \n|\n| |\n( ) |\nL\nP L\n\uf03c\n, here \n( )\nP L\n denote power set of language set, L by cantor theorem we \nknow if L is infinite countable or infinite uncountable \n( )\nP L\n power set of L is uncountable \n(Infinite) It\u2019s power set consist of decidable and some undecidable language both.\nS2:\nEvery finite language is regular as we have finite number of strings for example \n1\n2\n{\n,\n,........\n}\nn\nS S\nS\n, where \nn\nN\n\uf0ce\n.\nWe can have regular expression always\n1\n2\n......\nn\nR\nS\nS\nS\n=\n+\n+\n+\nTrue",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/33/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/33/q.webp
new file mode 100644
index 0000000..1f72773
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/33/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/34/data.json b/frontend/public/assets/gate/cs/questions/2021-N/34/data.json
new file mode 100644
index 0000000..71ee607
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/34/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "34",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(B), (C), (D)",
+ "question_text": "Question 34. \n \n \n \n \n \n \n \n \nMSQ (2M)\nQuestion ID : 8232513141\nFor a string w, we define \nR\nw\n to be the reverse of \nw\n. If \n01101\nw\n=\n the \n10110\nR\nw\n =\n. Which of the \nfollowing language is/are context-free?\n(A)\n*\n{\n|\n,\n{0,1} }\nR\nR\nwxw x\nw x\n\uf0ce\n \n(B) \n*\n{\n|\n,\n{0,1} }\nR\nR\nwx x w\nw x\n\uf0ce\n(C)\n*\n{\n|\n,\n{0,1} }\nR\nR\nww x x\nw x\n\uf0ce\n \n(D) \n*\n{\n|\n,\n{0,1} }\nR\nwxw\nw x\n\uf0ce",
+ "answer_text": "(B), (C), (D)",
+ "explanation_text": "Sol. \n(A) \n\uf07b\n\uf07d\n*\n|\n,\n{0.1}\nR\nR\nL\nw x w x\nw x\n=\n\uf0ce\nThis is not CFL as if we push \nw\n then \nx\n then we can\u2019t match \nR\nw\n against \nw\n. similarly with \nx\n and \nR\nx\n .\n(B)\n*\n{\n|\n,\n{0,14 }}\nR\nR\nL\nww x x\nw x\n=\n\uf0ce\nThis is CFL, particularly NCFL. We need to guess for middle of w here, and we can compare w with\nR\nw\n and \nx\n with \nR\nx\n .\n(C)\n*\n{\n|\n,\n{0,14 }}\nR\nR\nL\nw x x w\nw x\n=\n\uf0ce\nThis is NCFL clearly.\n(D) \n*\n{\n|\n,\n{0,14 }}\nR\nL\nwxw\nw x\n=\n\uf0ce\nTake \nw\n = \uf065\n then \nR\nw\n = \uf065\nx\n can be expanded to \n*\n(0 1)\n+\nIt is clearly regular\nB, C, D are CFL language."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/34/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/34/exp.webp
new file mode 100644
index 0000000..b66861a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/34/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/34/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/34/q.webp
new file mode 100644
index 0000000..d95846c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/34/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/35/data.json b/frontend/public/assets/gate/cs/questions/2021-N/35/data.json
new file mode 100644
index 0000000..5254a8c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/35/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "35",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 35. \n \n \n \n \n \n \n \n \nMCQ (1M)\n\nPAGE\n25\n\nQuestion ID : 8232513109\nLet \n{0,1}*\nL\n \uf0cd\n be an arbitrary regular language accepted by a minimal DFA with k states. Which \none of the following languages must necessarily be accepted by a minimal DFA with \nk\n states?\n(A) \nL L\n\uf0d7\n(B) \n{01}\nL\n \uf0c8\n(C) \n{0,1}*\n L\n\u2212\n(D) \n{01}\nL\n \u2212",
+ "answer_text": "(C)",
+ "explanation_text": "Sol. \nNumber of states in minimal DFA is same for language as well as it\u2019s complement\nL and \nL\n has same number of states\n*\n{0,14\n}\nL\nL\n=\n\u2212"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/35/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/35/exp.webp
new file mode 100644
index 0000000..c7f11e8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/35/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/35/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/35/q.webp
new file mode 100644
index 0000000..991438d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/35/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/36/data.json b/frontend/public/assets/gate/cs/questions/2021-N/36/data.json
new file mode 100644
index 0000000..ff94c93
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/36/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "36",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "256",
+ "question_text": "Question 36. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513117\nConsider the following DFA deterministic finite automaton\nThe number of strings of length 8 accepted by the above automation is _______.",
+ "answer_text": "256",
+ "explanation_text": "Sol. \nGiven:\n0\n0\n0,1\n1\n0,1\n0\n0,1\n1\n1\nOn observing clearly, it is accepting every string of length 8.\n8\n2\n256\n=\n string\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/36/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/36/exp.webp
new file mode 100644
index 0000000..db1788d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/36/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/36/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/36/q.webp
new file mode 100644
index 0000000..8e235b3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/36/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/37/data.json b/frontend/public/assets/gate/cs/questions/2021-N/37/data.json
new file mode 100644
index 0000000..8e05651
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/37/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "37",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(A), (C), (D)",
+ "question_text": "Question 37. \n \n \n \n \n \n \n \n \nMSQ (1M)\nQuestion ID : 8232513112\nLet \n1\nL\n be a regular language and \n2\nL\n be a context-free language. Which of the following languages\nis/are context-free?\n\nPAGE\n26\n\n(A) \n(\n)\n1\n2\n1\n2\n(\n)\nL\nL\nL\nL\n\n(B) \n1\n2\nL\nL\n\n(C) \n1\n2\nL\nL\n\n(D) \n1\n2\n2\n(\n)\nL\nL\nL\n",
+ "answer_text": "(A), (C), (D)",
+ "explanation_text": "Sol. \n1\nL\n regular language\n2\nL\n context free language\n(A) \n1\n2\n1\n2\n(\n)\n(\n)\nL\nL\nL\nL\n\uf0c7\n\uf0c8\n\uf0c7\nRegular is closed under complementation.\nAny CFL union with regular is CFL.\nAny CFL intersection with regular is CFL.\nA. \n1\n2\n1\n2\n(\n)\n(\n)\nL\nL\nL\nL\n\uf0c7\n\uf0c8\n\uf0c7\n(Regular \n(\n)\nFL\nL\n\uf0c7\n\uf0c8\n \nRegular\n(\n)\nFL\n\uf0c7\nCFL\nB. \n1\n2\nL\nL\n\uf0c7\nRegular\nCFL\n\uf0c7\nCFL\n may not be CFL\nC. \n1\n2\nL\nL\n\uf0c8\n1\n2\nL\nL\n\uf0c7\n1\n2\nL\nL\n\uf0c7\nRegular\n\uf0c7\nCFL = CFL\nD. \n1\n2\n2\n(\n)\nL\nL\nL\n\uf0c8\n\uf0c8\n*\n2\n2\nL\nL\n\uf0c8\n= \uf053\n*\n*\n1\nL\n \uf0c8\uf053= \uf053\nRegular hence CFL"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/37/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/37/exp.webp
new file mode 100644
index 0000000..0a6ead6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/37/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/37/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/37/q.webp
new file mode 100644
index 0000000..c4ddadd
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/37/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/38/data.json b/frontend/public/assets/gate/cs/questions/2021-N/38/data.json
new file mode 100644
index 0000000..5a73f26
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/38/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "38",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(A), (B), (C)",
+ "question_text": "Question 38. \n \n \n \n \n \n \n \n \nMSQ (2M)\nQuestion ID : 8232513147\nWhich of the following regular expressions is the set of all binary numbers is divisible by 3.\nAssume that the string epsilon is also divisible by 3.\n\nPAGE\n27\n\n(A) (0*(1(01*0) *1) *) *\n(B) (0 + 11+10(1 +00) *01) *\n(C) (0 + 1(01*0) *1) *\n(D) (0 + 11+11(1+00) *00)",
+ "answer_text": "(A), (B), (C)",
+ "explanation_text": "Sol.\n \nA, B, C are correct\nIn option D\n*\n(0 11 11(1 00) 00)\n+\n+\n+\n4 3 2 1 0\n111 0 0\n generated by D but not\n\nDivisible by 3."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/38/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/38/exp.webp
new file mode 100644
index 0000000..4e32c9c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/38/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/38/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/38/q.webp
new file mode 100644
index 0000000..652581c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/38/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/39/data.json b/frontend/public/assets/gate/cs/questions/2021-N/39/data.json
new file mode 100644
index 0000000..a9fa0d9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/39/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "39",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 39. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513138\nFor a statement S in a program, in the context of liveness analysis, the following sets are defined:\nUSE(S): the set of variables used in S\nIN (S): the set of variables that are live at the entry of S\nOUT(S): the set of variables that are live at the exit of S\nConsider a basic block that consists of two statements. S\n1\n followed by S\n2\n.\nWhich one of the following statements is correct?\nS1\nOut (51)\nIn (52)\nS2\nWhich of the following is true?\n(A) Out (S1) = In (S2) U Use (S2)\n(B) Out (S1) = In (S2) n Use (S2)\n(C) Out (S1) = In (S2)\n(D) Out(S1)= ln(S1)U Use(S1)",
+ "answer_text": "(C)",
+ "explanation_text": "Sol. \nFormula for in and out are\n1\nS\n2\nS\n\n\nPAGE\n28\n\nFor basic block B other than exit,\nIN[ ]\nuse\n[out( )]\nB\nB\nB\n=\n\uf0c8\ndef ( )\nB\n\u2212\nOut [B] = \nS\nU\n successor of B IN [B]\nOut \n( 1)\nIN( 2)\nS\nS\n="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/39/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/39/exp.webp
new file mode 100644
index 0000000..f874c6e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/39/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/39/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/39/q.webp
new file mode 100644
index 0000000..c145524
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/39/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/4/data.json b/frontend/public/assets/gate/cs/questions/2021-N/4/data.json
new file mode 100644
index 0000000..1ebb164
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/4/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "4",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 4. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513095\nPen: Write :: Knife :_____\nWhich one of the following options maintains a similar logical relation in the above.\n(A)\n \nSharp \n(B) Cut \n(C) Blunt \n(D) Vegetables.",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\n \nGiven:\n relation is object and its purpose\nPen is used to Write,\nSimilarly, Knife is used to Cut.\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/4/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/4/exp.webp
new file mode 100644
index 0000000..7dbb123
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/4/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/4/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/4/q.webp
new file mode 100644
index 0000000..fd2b907
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/4/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/40/data.json b/frontend/public/assets/gate/cs/questions/2021-N/40/data.json
new file mode 100644
index 0000000..c5f2cf6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/40/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "40",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "8",
+ "question_text": "Question 40. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID : 8232513151\nConsider the following augmented grammar with \n{#,@, , , , , }\na b c\n\uf03c\uf03e\n as the set of terminals\n'\nS\nS\n\u23af\u23af\u2192\n#\nS\nS\ncS\n\u23af\u23af\u2192\nS\nSS\n\u23af\u23af\u2192\n@\nS\nS\n\u23af\u23af\u2192\nS\nS\n\u23af\u23af\u2192\uf03c\n\uf03e\nS\na\n\u23af\u23af\u2192\nS\nb\n\u23af\u23af\u2192\nS\nc\n\u23af\u23af\u2192\nLet \n0\nI\n =\n CLOSURE \n(\n)\n{ '\n}\nS\nS\n\u2192\uf0d7\n. The number of items in the set GOTO (GOTO \n0\n(\n, ),\nI\n \uf03c\uf03c\n)\nis_________.",
+ "answer_text": "8",
+ "explanation_text": "Sol.\n1\n.\nS\nS\n\u2192\n.\n#\nS\nS\nc S\n\u2192\n\uf03c\n.\nS\nS\n\u2192\uf03c\n\uf03e\n.\nSS\n\u2192\n.\n@\nS\n\u2192\n.\n#\nS\nS\nc S\n\u2192\n.\nS\n\u2192\uf03c\n\uf03e\n.\na\n\u2192\n.\nSS\n\u2192\n.\n@\nS\n\u2192\n.\nb\n\u2192\n\uf03c\n.\nS\n\u2192\uf03c\n\uf03e\n.\na\n\u2192\n.\nc\n\u2192\n.\nb\n\u2192\n.\nc\n\u2192\nNumber of items in the set GO TO (GOTO (IO, <), <) is 8"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/40/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/40/exp.webp
new file mode 100644
index 0000000..1ea5c30
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/40/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/40/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/40/q.webp
new file mode 100644
index 0000000..0770e6d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/40/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/41/data.json b/frontend/public/assets/gate/cs/questions/2021-N/41/data.json
new file mode 100644
index 0000000..371deb0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/41/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "41",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 41. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513103\nConsider the following ANSI C program:\n\nPAGE\n29\n\nint main ( ) {\nInteger x;\nReturn 0;\n}\nwhich one of the following phases in a 7- phase C compiler will throw an error?\n(A) Lexical analyzer \n \n \n(B) Semantic analyzer\n(C) Machine dependent optimizer \n(D) Syntax analyzer",
+ "answer_text": "(C)",
+ "explanation_text": "Sol. \nIt is syntax error. As per ANSI C integer is not keyword for declaration of integer.\nWe have int."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/41/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/41/exp.webp
new file mode 100644
index 0000000..1ff66d1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/41/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/41/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/41/q.webp
new file mode 100644
index 0000000..62c5832
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/41/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/42/data.json b/frontend/public/assets/gate/cs/questions/2021-N/42/data.json
new file mode 100644
index 0000000..a44049f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/42/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "42",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(B)",
+ "question_text": "Question 42. \n \n \n \n \n \n \n \n \nMSQ (1M)\nQuestion ID : 8232513113\nIn the context of compilers, which of the following is/are NOT an intermediate representation of\nthe source program?\n(A) 3 Address code \n \n(B) Symbol Table\n(C) Control Flow Graph \n(D) Abstract Syntax Tree",
+ "answer_text": "(B)",
+ "explanation_text": "Sol. \nSymbol table is data structure used to store information related to variables, function name etc."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/42/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/42/exp.webp
new file mode 100644
index 0000000..1c5c1ac
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/42/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/42/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/42/q.webp
new file mode 100644
index 0000000..f105bcf
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/42/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/43/data.json b/frontend/public/assets/gate/cs/questions/2021-N/43/data.json
new file mode 100644
index 0000000..0ffdcdd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/43/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "43",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 43. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513130\nConsider the following ANSI C code segment:\nz = x + 3 + y->f1 + y->f2;\nfor (i = 0; i < 200; i = i + 2){ \n if (z > i) { \np = p + x + 3; \nq = q + y->f1;\n} else {\np = p + y- >f 2; \nq = q + x + 3;\n}\n}\nAssume that the variable y points to a struct (allocated on the heap) containing two fields fl and f2. \nand the local variables x. y. z, p. q. and i are allotted registers. Common sub-expression elimination \n(CSE) optimization is applied on the code. The number of addition and dereference operations (of the \nform y->f 1 or y->f2 ) in the optimized code, respectively, are:\n(A)\n \n303 and 2\n\nPAGE\n30\n\n(B)\n \n 203 and 2 \n(C)\n \n 403 and 102 \n(D)\n \n303 and 102",
+ "answer_text": "(A)",
+ "explanation_text": "Sol. \nIn compiler theory, common subexpression elimination is a compiler optimization that searches for \ninstances for identical expressions (i.e, they all evaluate to the same value), and analyzes whether it is \nworthwhile replacing them with a single variable holding the computed value.\nFor example: Consider the following block of code\na = x+y+z;\nr = p+q;\nb = x+y+r;\nThe code after common subexpression elimination.\nt=x+y;\na=t+z;\nr=p+q;\nb=t+r;\nIn the given code z = x + 3 + y -> f1 + y -> f2;\nfor (i = 0; i < 200; i = i+2) {\nif (z > i)\n{\np = p + x + 3;\nq = q + y -> f1;\n}\nelse\n{\np = p + y -> f2;\nq = q + x + 3;\n}\n}\nX+3 is common subexpression, also y -> f1 & y -> f2 is found in first line itself so they are also like \ncommon subexpression. Hence the code after common subexpression\nt1=x+3;\nt2=y -> f1;\nt3= y -> f2;\nz = t1 + t2 + t3;\n\nPAGE\n31\n\nfor (i = 0; i < 200; i = i+2){\nif (z > i) {\np = p + t1;\nq = q + t2;\n}\nelse{\np = p + t3;\nq = q + t1;\n}\n}\nHence two dereference operations (of the form y->f1 or y->f2) in the optimized code. The number of \nadditions in the optimized code are: Loop will execute for 100 times and in loop one addition (i+2) \nSo 100 additions. Inside loop we have two additions (either in if block or in else block) so 200 \nadditions inside loop.\nHence 300 additions in loop (loop body as well as inside)\nFirst 2 lines contains 3 additions\nt1=x+3;\nz = t1 + t2 + t3;\nHence total 303 additions. So 303 and 2 are the answer."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/43/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/43/exp.webp
new file mode 100644
index 0000000..d3fead2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/43/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/43/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/43/q.webp
new file mode 100644
index 0000000..8f466b9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/43/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/44/data.json b/frontend/public/assets/gate/cs/questions/2021-N/44/data.json
new file mode 100644
index 0000000..7d746e5
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/44/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "44",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 44. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513127\nAssume a two-level inclusive cache hierarchy, L1 and L2, where L2 is the larger of the two.\nConsider the following statements.\n1\n :\nS\n Read misses in a write through L1 cache do not result in writebacks of dirty lines to the L2.\n2\n \n:\nS\n Write allocate policy must be used in conjunction with write through caches and no-write\nallocate policy is used with writeback caches.\nWhich of the following statements is correct?\n(A) \n1\nS\n is true and \n2\nS\n is true\n(B) \n1\nS\n is false and \n2\nS\n is false\n(C) \n1\nS\n is true and \n2\nS\n is false\n(D) \n1\nS\n is false and \n2\nS\n is true",
+ "answer_text": "(C)",
+ "explanation_text": "Sol.\n \nA cache with a write through policy (and write allocate) reads on entire block (cache line) from \nmemory on a cache miss and writes only the updated item to memory for a store.\n\nPAGE\n32\n\nEvictions do not need to write to memory.\nA cache with a write back policy (and write allocate) reads an entire block (cache line) from memory \non a cache miss, and may need to write a dirty cache line first. Any writes to memory need to be \nentire cache lines since there is no way to distinguish which word was dirty with only a single dirty \nbit. Evictions of a dirty cache line cause a write to memory\nS2: false\nWrite allocate policy is also used with write back cache."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/44/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/44/exp.webp
new file mode 100644
index 0000000..3074367
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/44/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/44/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/44/q.webp
new file mode 100644
index 0000000..2f8381f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/44/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/45/data.json b/frontend/public/assets/gate/cs/questions/2021-N/45/data.json
new file mode 100644
index 0000000..987d16b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/45/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "45",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 45. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513106\nConsider the following statements S1 and S2 about the relational data model:\nS\n1\n: A relation cannot have more than one foreign key.\nS\n2\n: A foreign key in a relation scheme R cannot be used to refer the tuples of R.\nWhich one of the following choices is/are true?\n(A) S\n1\n is true S\n2\n is false (B) S\n2\n is true S\n1\n is true\n(C) Both S\n1\n and S\n2\n are true (D) Both S\n1\n and S\n2\n are false",
+ "answer_text": "(D)",
+ "explanation_text": "Sol.\n \nA relation may have multiple foreign keys, and each foreign key can have a different parent table.\nTherefore, the statement I is incorrect. This statement is also incorrect because a self-referential \nrelationship refers to its own attributes."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/45/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/45/exp.webp
new file mode 100644
index 0000000..fecf3d1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/45/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/45/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/45/q.webp
new file mode 100644
index 0000000..2015586
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/45/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/46/data.json b/frontend/public/assets/gate/cs/questions/2021-N/46/data.json
new file mode 100644
index 0000000..bd11d31
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/46/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "46",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "698 Blocks",
+ "question_text": "Question 46. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513121\nA data file consisting of 1,50,000 students\u2019 records is stored on a hard disk with block size of 4096 \nbytes. The data file is sorted on the primary key RollNo. The size of a record pointer for this disk is 7 \nbytes. Each student-record has a candidate key attribute called ANum of size 12 bytes. Suppose an \nindex file with records consisting of two fields. ANum value and the record pointer to the \ncorresponding student record, is built and stored on the same disk. Assume that the records of data \nfile and index file are not split across disk blocks. The number of blocks in the index file is_____",
+ "answer_text": "698 Blocks",
+ "explanation_text": "Sol.\n \nGiven the total records = 1,50,000\nBlock size \n4096bytes\n=\nKey size = 12 bytes\nRecord pointer size = 7 bytes\nFor a dense index, the number of indexes per block = floor (4096/(12+7)) = 215\nTherefore, the total number of blocks = cell (1,50,000/215) = 698 blocks"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/46/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/46/exp.webp
new file mode 100644
index 0000000..2ee574f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/46/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/46/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/46/q.webp
new file mode 100644
index 0000000..5a0b465
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/46/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/47/data.json b/frontend/public/assets/gate/cs/questions/2021-N/47/data.json
new file mode 100644
index 0000000..f61edc8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/47/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "47",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 47. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513132\n\nPAGE\n33\n\nLet S be the following schedule of operation of three transactions \nT\n1,\n \nT\n2 \nand \nT\n3 \nin a relational \ndatabase system:\nS: R\n2\n(y), R\n1\n(x), R\n3\n(z), R\n1\n(y), W\n1\n (x), R\n2\n(z), W\n2\n(y), R\n3\n(x), W\n3\n(z)\nP. S is conflict serializable.\nQ. It \nT\n3\n commits before \nT\n1\n finishes, then schedule S is recoverable.\nWhich of the following is true ?\n(A) Both P and Q are true\n(B) P is true and Q is false\n(C) Both P and Q are false\n(D) P is false and Q is true",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\ni.\n \nThe given schedule is a conflict serializable and the precedence graph for the given\nschedule is\nii.This statement is false. For the given condition it is irrecoverable. For this to be recoverable, the \ntransaction T1 should have committed before T3 does.\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/47/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/47/exp.webp
new file mode 100644
index 0000000..6bb0865
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/47/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/47/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/47/q.webp
new file mode 100644
index 0000000..621520d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/47/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/48/data.json b/frontend/public/assets/gate/cs/questions/2021-N/48/data.json
new file mode 100644
index 0000000..7143462
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/48/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "48",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(A), (B), (D)",
+ "question_text": "Question 48. \n \n \n \n \n \n \n \n \nMSQ (1M)\nQuestion ID : 8232513140\nSuppose the following functional dependencies hold on a relation U with attributes P, Q, R, S, and T\nP\nQR\n\u2192\nRS\nT\n\u2192\nWhich of the following functional dependencies can be inferred from the above functional\ndependencies?\n(A)\n PS\nQ\n\u2192\n \n(B) \nP\nR\n\u2192\n \n(C) \nR\nT\n\u2192\n \n(D) \nPS\nT\n\u2192",
+ "answer_text": "(A), (B), (D)",
+ "explanation_text": "Sol.\n \nFor the given F\u2019Ds, the closure of the attributes will be \n \n \n{ ,\n, }\nP\nP Q R\n+ =\n{ , , }\nRS\nR S T\n+ =\n\nPAGE\n34\n\n{ , ,\n, , }\nPS\nP S Q R T\n+ =\n{ }\nR\nR\n+ =\nBased on these, the FD\u2019s\nPS\nT\n\u2212\uf03e\nP\nR\n\u2212\uf03e\n \n \n \nPS\nQ\n\u2212\uf03e\nHolds for the given relation\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/48/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/48/exp.webp
new file mode 100644
index 0000000..6e754da
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/48/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/48/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/48/q.webp
new file mode 100644
index 0000000..956ab8c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/48/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/49/data.json b/frontend/public/assets/gate/cs/questions/2021-N/49/data.json
new file mode 100644
index 0000000..3acdb95
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/49/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "49",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 49. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513131\nThe relation scheme given below is used to store information about the employees of a company, \nwhere empId is the key and deptId indicates the department to which the employee is assigned. Each \nemployee is assigned to exactly one department.\nemp(empId, name, gender, salary, deptId)\nConsider the following SQL Query: \n \nselect deptId, count (*) \n \nfrom emp \n \nwhere gender = \"female\" and salary > (select avg (salary) from emp)\ngroup by deptId;\nThe above query gives, for each department in the company, the number of female employees whose \nsalary is greater than the average salary of\n(A)\n \nEmployees in the department \n(B)\n \nFemale employees in the department \n(C)\n \nEmployees in the company \n(D)\n \nFemale employees in the company",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\n \nThe given query will return the department id and the count of female employees in each department\nwhose salary is greater than the average salary of any employee.\nHere, the inner query will return the average salary of the employees. The group by clause will group \nthe tuples based on dept id, count (*) will give us the count of tuples in each department where \ngender = female and the salary > average salary of any employee.\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/49/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/49/exp.webp
new file mode 100644
index 0000000..4c8aa5a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/49/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/49/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/49/q.webp
new file mode 100644
index 0000000..f9c1c60
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/49/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/5/data.json b/frontend/public/assets/gate/cs/questions/2021-N/5/data.json
new file mode 100644
index 0000000..a4d792d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/5/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "5",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 5. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513094\n2\n2\n1\n3\n2\n2\n2\nx\nx\nx\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\u2212\n\u2212\n\u2212\n=\n+\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\nIf\n, then value of x is.\n(A)6 \n(B) \n4 \n(C) \n8 \n(D) \n2",
+ "answer_text": "(B)",
+ "explanation_text": "Sol. \nGiven:\n2\n2\n1\n3\n2\n2\n2\nx\nx\nx\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\u2212\n\u2212\n\u2212\n=\n+\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\n1\n3\n1\n3\n2\n2\n2\n2\n2\nx\nx\nx\nx\nx\n\uf0e6\n\uf0f6\uf0e6\n\uf0f6\n\u2212\n\u2212\n+\n\u2212\n+\n\u2212\n=\n+\n\uf0e7\n\uf0f7\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\uf0e8\n\uf0f8\n\n\nPAGE\n4\n\n2\n2\n2\nx\nx\n\u2212=\n+\n\uf05c\n \n4\nx\n ="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/5/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/5/exp.webp
new file mode 100644
index 0000000..0799e3f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/5/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/5/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/5/q.webp
new file mode 100644
index 0000000..8f45e3c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/5/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/50/data.json b/frontend/public/assets/gate/cs/questions/2021-N/50/data.json
new file mode 100644
index 0000000..db5a78d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/50/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "50",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(B), (C)",
+ "question_text": "Question 50. \n \n \n \n \n \n \n \n \nMSQ (2M)\nQuestion ID : 8232513145\nConsider a computer network using the distance vector routing algorithm in its network layer.\nThe partial topology of the network is as shown below.\n\nPAGE\n35\n\nThe objective is to find the shortest-cost path from the router R to routers P and Q. Assume that R \ndoes not initially know the shortest routes to P and Q. Assume that R has three neighbouring routers \ndenoted as X, Y. and Z. During one iteration, R measures its distance to its neighbours X, Y, and Z \nas 3, 2, and 5, respectively. Router R gets routing vectors from its neighbours that indicate that the \ndistance to router P from routers X, Y, and Z are 7, 6, and 5, respectively. The routing vector also \nindicates that the distance to router Q from routers X. Y, and Z are 4, 6, and 8 respectively. Which of \nthe following statement(s) is/are correct with respect to the new routing table of R, after updation \nduring this iteration?\n(A) The distance from R to P will be stored as 10\n(B) The next hop router for a packet from R to P is Y\n(C) The distance from R to Q will be stored as 7\n(D) The next hop router for a packet from R to Q is Z",
+ "answer_text": "(B), (C)",
+ "explanation_text": "Sol. \nFrame size \n( )\n1000 bits\nL\n =\nData rate \n( )\n1 Mbps\nR\n =\n3\nL\nt\nR\n=\n=\n=\n6\n10 bits\n1 ms\n10 bits/sec\nf\n\nTotal no. of frames transmitted per sec = 1000\n1 ms\nf\nt\n =\n\nSo \n1\nG\n =\nThroughput\nG\nG\ne\n\u2212\n=\n\uf0b4\n1\ne\n\u2212\n=\n0.367\n=\nNote : \nG\n =\nno. of frames transmitted per frames to transmission time."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/50/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/50/exp.webp
new file mode 100644
index 0000000..3dbb1fa
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/50/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/50/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/50/q.webp
new file mode 100644
index 0000000..b0e7a31
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/50/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/51/data.json b/frontend/public/assets/gate/cs/questions/2021-N/51/data.json
new file mode 100644
index 0000000..789fccd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/51/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "51",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "D",
+ "question_text": "Question 51. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513134\nConsider the cyclic redundancy check (CRC) based error detecting scheme having the generator\npolynomial \n3\n1\nX\nX\n+\n+\n . Suppose the message \n4\n3\n2\n1\n0\n1100\nm m m m m\n =\nis to be transmitted. Check bits\n\nPAGE\n36\n\n2 1 0\nc c c\n are appended at end of the message by the transmitter using the above CRC scheme. The\ntransmitted bit string is denoted by \n4\n3\n2\n1\n0 2 1 0\nm m m m m c c c\n . The value of the check bit sequence \n2 1 0\nc c c\n is\n(A)\n \n111 \n(B) \n110 (C) \n101 (D) \n100",
+ "answer_text": "D",
+ "explanation_text": "Sol.\n \nGenerator: X\n3\n + X + 1 = > 1011\nData: 11000\n\n1011 | 1 1 0 0 0 0 0 0\n1 0 1 1\n1 1 1 0\n1 0 1 1\n1 0 1 0\n1 0 1 1\n0\n \n1 0 0 => CRC"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/51/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/51/exp.webp
new file mode 100644
index 0000000..163c51d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/51/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/51/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/51/q.webp
new file mode 100644
index 0000000..9ada698
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/51/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/52/data.json b/frontend/public/assets/gate/cs/questions/2021-N/52/data.json
new file mode 100644
index 0000000..ecc275a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/52/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "52",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 52. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513107\nConsider the three-way handshake mechanism followed during TCP connection establishment \nbetween hosts P and Q. Let X and Y be two random 32-bit starting sequence numbers chosen by P \nand Q respectively. Suppose P sends a TCP connection request message to Q with a TCP segment \nhaving SYN bit = 1, SEQ number = X, and ACK bit = 0. Suppose Q accepts the connection request \nmessage to\n(A) SYN bit = 1 , SEQ NO = X+1 , ACK bit =0 , ACK No =Y, FIN bit =0\n(B) SYN bit = 1 , SEQ NO = Y, ACK bit = 1 , ACK No = X, FIN bit = 0\n(C) SYN bit = 1 , SEQ NO = Y, ACK bit = 1 , ACK No = X+1, FIN bit = 0\n(D) SYN bit = 0 , SEQ NO = X+ 1, ACK bit = 0 , ACK No = Y, FIN bit = 1",
+ "answer_text": "(C)",
+ "explanation_text": "Sol.\n \nSYN =1 as Q also will establish a connection\nSEQ Num = Y, representing if it wants to send data, its starting from Y sequence number\nACK bit = 1, as now it is acknowledging the sender for connection request\nACK No = X+1, the data it is expecting will now start from sequence number X+1, as 1 bit has \nalready been consumed by the SYN request\nFIN = 0, because it is establishing the connection to terminating."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/52/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/52/exp.webp
new file mode 100644
index 0000000..fc14ebe
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/52/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/52/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/52/q.webp
new file mode 100644
index 0000000..af2fbec
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/52/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/53/data.json b/frontend/public/assets/gate/cs/questions/2021-N/53/data.json
new file mode 100644
index 0000000..4911277
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/53/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "53",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "130 to 140",
+ "question_text": "Question 53. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID : 8232513154\n\nPAGE\n37\n\nConsider a network using pure aloha where frame length = 1000 bits, transmission rate= 1Mbps. The \naverage number of transmissions across all nodes modeled as a Poisson process with a rate 1000 \nframes/sec. Throughput is an average number of transmissions per seconds then the throughput is ?",
+ "answer_text": "130 to 140",
+ "explanation_text": "Sol. \nFrame size \n( )\n1000 bits\nL\n =\nData rate \n( )\n1 Mbps\nR\n =\n3\nL\nt\nR\n=\n=\n=\n6\n10 bits\n1 ms\n10 bits/sec\nf\n\nTotal no. of frames transmitted per sec = 1000\n1 ms\nf\nt\n =\n\nSo \n1\nG\n =\nThroughput\n2\nG\nG\ne\n\u2212\n=\n\uf0b4\n2\ne\n\u2212\n=\n= 0.1353\nFor 1000 frames\nThroughput \n1000 0.1353 135\n=\n\uf0b4\n=\nNote : \nG\n =\nno. of frames transmitted per frames to transmission time."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/53/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/53/exp.webp
new file mode 100644
index 0000000..fefbf0c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/53/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/53/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/53/q.webp
new file mode 100644
index 0000000..db00385
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/53/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/54/data.json b/frontend/public/assets/gate/cs/questions/2021-N/54/data.json
new file mode 100644
index 0000000..86e0249
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/54/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "54",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "15.0 to 16.0",
+ "question_text": "Question 54. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513122\nFor a given biased coin, the probability that the outcome of a toss is head is 0.4. This coin is tossed \n1000 times. Let X denotes the random variable whose value is the number of times that head \nappeared in those 1000 tosses. The standard deviation of X (rounded to 2 decimal points) is________",
+ "answer_text": "15.0 to 16.0",
+ "explanation_text": "Sol.\n \nGiven : \nProbability of head, \n0.4\np\n =\nProbability of tail, \n1\n0.6\nq\np\n= \u2212\n=\nCoin is tossed 1000 times, \n1000\nn\n =\nLet X is a random variable whose value is number of times head appeared in those 1000 tosses\nWe know that, for binomial distribution\nmean\nnp\n=\nvariance\nnpq\n=\nWhere \n1\nq\np\n= \u2212\nSo, standard deviation, \nnpq\n\uf073=\n1000 0.4 0.6\n240\n15.49\n\uf073=\n\uf0b4\n\uf0b4\n=\n=\n\nPAGE\n38\n\nHence, the correct answer is 15.49."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/54/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/54/exp.webp
new file mode 100644
index 0000000..9bd1eda
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/54/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/54/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/54/q.webp
new file mode 100644
index 0000000..6a52b4f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/54/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/55/data.json b/frontend/public/assets/gate/cs/questions/2021-N/55/data.json
new file mode 100644
index 0000000..d0b21a2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/55/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "55",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "19",
+ "question_text": "Question 55. \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513125\nSuppose that \n:\nf\nR\nR\n\u2192\n is a continuous function on the interval \n[ 3,3]\n\u2212\n and a differentiable function\nin the interval \n( 3,3)\n\u2212\nsuch that for every x in the interval,\n( )\n2\nf x\n \uf0a3\n. If \n( 3)\n7\nf\n \u2212\n=\n then \n(3)\nf\nis at\nmost____",
+ "answer_text": "19",
+ "explanation_text": "Sol. \nGiven:\n The function \nf \nis continuous on interval [\u20133,3] and differentiable in interval (\u20133,3) and\n( )\n2.\nf\nx\n\uf0a2\n\uf0a3\nBy using Lagrange\u2019s mean value theorem,\nb\nf\nf a\nx\na\n\u2212\n=\n\u2212\n( )\n)\n'\n(\n( )\nf b\nHere, \n3\na\n = \u2212\nand \n3\nb\n =\n)\n'\n3\n( 3\nf\nf\nx\nf\n\u2212\n\u2212\n=\n\u2212\u2212\nSo, \n( )\n(3)\n( 3)\nAs, \n'( )\n2\nf\nx\n \uf0a3\n is given\n(3)\n7\n2\n3\n3\nf\n\u2212\n\uf0b3\n+\n\uf0b4\n\uf0b3\n\u2212\n\uf0a3\n+\n\uf0a3\n2 6\n(3)\n7\n(3)\n12\n7\n(3)\n19\nf\nf\nf\n\n\nHence, the correct answer is 19."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/55/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/55/exp.webp
new file mode 100644
index 0000000..1b5deda
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/55/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/55/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/55/q.webp
new file mode 100644
index 0000000..1591283
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/55/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/56/data.json b/frontend/public/assets/gate/cs/questions/2021-N/56/data.json
new file mode 100644
index 0000000..1d7a9de
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/56/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "56",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "4",
+ "question_text": "Question 56. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513124\nSuppose that P is a \n4 5\n\uf0b4\n matrix such that every solution of the equation \n0\nx\nP\n =\n is a scalar multiple of\n[25431]\nT\n \n. The rank of P is ______",
+ "answer_text": "4",
+ "explanation_text": "Sol.\n \nGiven:- P is 4 \u00d7 5 matrix\nNo. of Rows = 4\nNo of columns = 5\nSo , no of variable = No of columns = 5\nSince, Px is a homogeneous.\nAnd no of variables greater than Raw\n\nPAGE\n39\n\n\uf05c\nRank = No of rows = 4\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/56/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/56/exp.webp
new file mode 100644
index 0000000..a1503d3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/56/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/56/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/56/q.webp
new file mode 100644
index 0000000..eaa302f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/56/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/57/data.json b/frontend/public/assets/gate/cs/questions/2021-N/57/data.json
new file mode 100644
index 0000000..daf0ccd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/57/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "57",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 57. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513133\nA bag has r red balls and b black balls. All balls are identical except for their colours. In a trial, a ball \nis randomly drawn from the bag, its colour is noted and the ball is placed back into the bag along \nwith another ball of the same colour. Note that the number of balls in the bag will increase by one, \nafter the trial. A sequence of four such trials is conducted. Which one of the following choices gives \nthe probability of drawing a red ball in the fourth trial?\n(A) \n1\n2\n3\n1\n2\n3\nr\nr\nr\nr\nr\nb\nr\nb\nr\nb\nr\nb\n+\n+\n+\n\uf0e6\n\uf0f6\uf0e6\n\uf0f6\uf0e6\n\uf0f6\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\uf0e7\n\uf0f7\uf0e7\n\uf0f7\uf0e7\n\uf0f7\n+\n+\n+\n+\n+\n+\n+\n\uf0e8\n\uf0f8\uf0e8\n\uf0f8\uf0e8\n\uf0f8\uf0e8\n\uf0f8\n3\nr\nr\nb\n+\n+\n+\n(B) \n3\n(C) \n3\nr\nr\nb\n+\n+\n(D) \nr\nr\nb\n+",
+ "answer_text": "(D)",
+ "explanation_text": "Sol. \nThere are 10 favorable ways to calculate the probability of red ball in 4\nth\n trial\n(\n)\n(\n)\n1 way\nRBR R\nR BRR R\n=\n=\nOr \n \n(\n)\n3 ways or (\n)\n3 ways\nRRR\nBBB R\n=\n=\n1\n2\n2\n(\n)\n1\n2\n3\nr\nr\nr\nP RRRR\nr\nb\nr\nb\nr\nb\nr\nb\n+\n+\n+\n=\n\uf0b4\n\uf0b4\n\uf0b4\n+\n+ +\n+\n+\n+ +\n \n \n\u2026 (i)\n1\n2\n(\n)\n1\n2\n3\nb\nb\nb\nr\nP BBBR\nr\nb\nr\nb\nr\nb\nr\nb\n+\n+\n=\n\uf0b4\n\uf0b4\n\uf0b4\n+\n+\n+\n+\n+\n+\n+\n \n \n\u2026 (ii)\n+\n=\n\uf0b4\n\uf0b4\n\uf0b4\n+\n+\n+\n+\n+\n+\n\uf0b4\n+\n+\nr\nr\nb\nP RRBR\nr\nb\nr\nb\nr\nb\nr\nr\nb\n3!\n1\n(\n)\n2!\n1\n2\n2\n\n\n3\n\u2026 (iii)\n+\n=\n\uf0b4\n\uf0b4\n\uf0b4\n+\n+\n+\n+\n+\n+\n\uf0b4\n+\n+\nb\nb\nr\nP BBRR\nr\nb\nr\nb\nr\nb\nr\nr\nb\n3!\n1\n(\n)\n2!\n1\n2\n1\n\n\n3\n\u2026 (iv)\nRequired probability\n(i)\n(ii)\n(iii)\n(iv)\n=\n+\n+\n+\n\nPAGE\n40\n\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n=\n+\n+\n+\n+\n+\n+\n+\nr r\nr\nr\nb b\nb\nr\nr r\nb r\nb b\nr r\nr\nb r\nb\nr\nb\nr\nb\n(\n1)(\n2)(\n3)\n(\n1)(\n2)\n3 (\n1) (\n2)\n3 (\n1) (\n1)\n(\n)(\n1)(\n2)(\n3)\n\nOn solving it we get,\n(\n1\n)\n(\n)(\n1)\nr r\nb\nr\nr\nb r\nb\nr\nb\n+ +\n=\n=\n+\n+\n+\n+\nHence, the correct option is (A).\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/57/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/57/exp.webp
new file mode 100644
index 0000000..730cfc9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/57/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/57/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/57/q.webp
new file mode 100644
index 0000000..dcf904c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/57/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/58/data.json b/frontend/public/assets/gate/cs/questions/2021-N/58/data.json
new file mode 100644
index 0000000..244a4cd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/58/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "58",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 58. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513129\nIn an examination, a student can choose the order in which two questions (QuesA and QuesB) must \nbe attempted.\n-If the first question is answered wrong, the student gets zero marks.\n-If the first question is answered correctly and the second question is not answered correctly, the \nstudent gets the marks only for the first question.\n-If both the questions are answered correctly, the student gets the sum of the marks of the two \nquestions.\nThe following table shows the probability of correctly answering a question and the marks of the \nquestion respectively.\nquestion probability of answering\nmarks\ncorrectly\nQuesA 0.8 \n 10\nQuesB 0.5 \n 20\nAssuming that the student always wants to maximize her expected marks in the examination, in \nwhich order should she attempt the questions and what is the expected marks for that order (assume \nthat the questions are independent)?\n(A)First QuesA and then QuesB. Expected marks 14.\n(B)First QuesB and then QuesA. Expected marks 22.\n(C)First QuesB and then QuesA. Expected marks 14.\n(D)First QuesA and then QuesB. Expected marks 16.",
+ "answer_text": "(D)",
+ "explanation_text": "Sol. \nLet \nX\n be random variable which represents total marks record.\n( )\nP x\n be\n \nprobability of getting those marks\nP\n (answering Ques A correctly) =0.8\nP\n (answering Ques B correctly) =0.5\n\n\nPAGE\n41\n\nX\n \n0\n \n10 \n20 \n30\n0.2 0.5\n\uf0b4\n0.8 0.5\n\uf0b4\n0.5 0.2\n\uf0b4\n0.8 0.5\n\uf0b4\n( )\nP x\n=0.1\n=0.4\n=0.1\n=0.4\n\n( )\n1\nP x\n =\n\uf0e5\nCase I, if Question A is attempted first and it is correct.\n( )\n( ) ( )\nE x\nx P x\n= \uf053\n( )\nE x\n0.4 10\n0.4 30\n=\n\uf0b4\n+\n\uf0b4\n( )\nE x\n4 12\n16\n=\n+\n=\nCase II, If Question B is attempted first and is correct.\n( )\n( ) ( )\nE x\nx P x\n= \uf053\n( )\nE x\n0.1(20)\n0.4(30)\n=\n+\n( )\nE x\n2 12\n14\n=\n+\n=\nSo, Case I is giving maximum expected marks.\nHence, the correct option is (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/58/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/58/exp.webp
new file mode 100644
index 0000000..afeeb54
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/58/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/58/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/58/q.webp
new file mode 100644
index 0000000..e97d6d9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/58/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/59/data.json b/frontend/public/assets/gate/cs/questions/2021-N/59/data.json
new file mode 100644
index 0000000..dd36e3b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/59/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "59",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(B), (D)",
+ "question_text": "Question 59. \n \n \n \n \n \n \n \n \nMSQ (1M)\nQuestion ID : 8232513111\nConsider the following sets, where n \u2265 2\nS1: Set of all n x n matrices with entries from the set {a, b, c}\nS2: Set of all functions from the set {0, 1, 2, \u2026., n\n2\n-1} to the set {0, 1, 2}\nWhich of the following is possible?\n(A) There does not exist an injection from S1 to S2 .\n(B) There exists a surjection from S1 to S2.\n(C) There does not exist a bijection from S1 to S2.\n(D) There exists a bijection from S1 to S2.",
+ "answer_text": "(B), (D)",
+ "explanation_text": "Sol.\n \nS1: For n \u00d7 n matrices n\n2\n entries will be there, for each entry we are having 3 choices, one of a, b and \nc. therefore total possible ways matrix can be built is 3\nn^2\n, i.e., 3\nn^2 \nelements in Set 1\nS2: Set A consists element from 0 to n\n2\n \u2013 1, in totality n\n2\n elements are there, in Set B only 3 elements \nare there namely 0,1,2. Therefore total number of functions possible from Set A to Set B are 3\nn^2\n. i.e., \n3\nn^2\n elements in Set 2\nTherefore, both Bijection and Surjection may exist from Set1 to Set 2 as both are having same \nnumber of elements."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/59/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/59/exp.webp
new file mode 100644
index 0000000..ec1d452
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/59/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/59/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/59/q.webp
new file mode 100644
index 0000000..a704339
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/59/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/6/data.json b/frontend/public/assets/gate/cs/questions/2021-N/6/data.json
new file mode 100644
index 0000000..3e583c3
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/6/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "6",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(D)",
+ "question_text": "Question 6. \n \n \n \n \n \n \n \n \nMCQ (1M)\nQuestion ID : 8232513091\nGauri said that she can play the keyboard ___her sister.\n(A) As worse as \n \n \n(B) As nicest as\n(C) As better as \n \n \n(D) As well as",
+ "answer_text": "(D)",
+ "explanation_text": "Sol. \nThe structure as\u2026as is used to compare things that are of similar proportion. In this case the first as\nacts as an adverb modifying the adjective or adverb that goes after it. The second as can act as a \npreposition or conjunction. If it is used as a preposition, it will be followed by a noun or pronoun\n.\n\"As X as\" is a comparison of equals.\n\"Better than\" is not.\nTherefore, better, worse, nicest can not be used in equality comparison."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/6/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/6/exp.webp
new file mode 100644
index 0000000..855e4f7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/6/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/6/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/6/q.webp
new file mode 100644
index 0000000..31e765e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/6/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/60/data.json b/frontend/public/assets/gate/cs/questions/2021-N/60/data.json
new file mode 100644
index 0000000..a81a4ad
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/60/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "60",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 60. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID: 8232513137\n\nPAGE\n42\n\nFor two n-dimensional real vectors \nP\n and Q. the operation s (\nP\n,\n Q\n) is defined as follows:\nn\n=\n=\n\uf0d7\n\uf0e5\n(\n)\ni\ns P Q\nP i Q i\n1\n( ,\n)\n[ ]\n[ ]\nLet \u00a3 be a set of 10-dimensional non-zero real vectors such that for every pair of distinct vectors \nP\n,\n\uf0ce\n\u00a3, s (\nP\n,\n Q\n) = 0. What is the maximum cardinality possible for the set \u00a3?\n(A) 10\n(B) 11\n(C) 9\n(D) 100",
+ "answer_text": "(A)",
+ "explanation_text": "Sol. \nGiven:\nn\n=\n=\n\uf0d7\n\uf0e5\n(\n)\ni\ns P Q\nP i Q i\n1\n( ,\n)\n[ ]\n[ ]\nS\n(\nP, Q\n) is nothing but the dot product of two vectors.\nThe dot product of two vectors is zero when they are perpendicular, as we are dealing with 10\ndimensional vectors the maximum number of mutually-perpendicular vectors can be 10.\nTherefore, the maximum cardinality possible for the set \n\u00a3."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/60/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/60/exp.webp
new file mode 100644
index 0000000..49f6f30
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/60/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/60/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/60/q.webp
new file mode 100644
index 0000000..7a180a5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/60/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/61/data.json b/frontend/public/assets/gate/cs/questions/2021-N/61/data.json
new file mode 100644
index 0000000..2a0b6b5
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/61/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "61",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(B), (C)",
+ "question_text": "Question 61. \n \n \n \n \n \n \n \n \nMSQ (1M)\nQuestion ID: 8232513115\nChoose the correct choice(s) regarding the following propositional logic assertion S:\nS: ((P ^ Q) \u2192 R) ((P ^ Q) \u2192 4 (Q \u2192 R))\n(A)\n S is a contradiction\n(B)\n S is a tautology\n(C)\n The antecedent of S is equal to consequent of S (doubtful)\n(D)\n Neither tautology nor contradiction",
+ "answer_text": "(B), (C)",
+ "explanation_text": "Sol. \nAntecedent (X): (PQ)\u2019 + R ==> P\u2019 + Q\u2019 + R --------- 1\nConsequent (Y): ((PQ)\u2019 + (Q\u2019 + R)) ==> (P\u2019 + Q\u2019) + Q\u2019 + R ==> P\u2019 + Q\u2019 + Q\u2019 + R ==> P\u2019 + Q\u2019 + R -\n------2\nBecause Antecedent and Consequent are returning same expression, therefore X \n\u2192\n Y, will be \nTautology because X and Y are coming out to be same. For example\nA\n\u2192\nA ==> A\u2019 + A ==> 1"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/61/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/61/exp.webp
new file mode 100644
index 0000000..8a934bd
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/61/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/61/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/61/q.webp
new file mode 100644
index 0000000..4e90359
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/61/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/62/data.json b/frontend/public/assets/gate/cs/questions/2021-N/62/data.json
new file mode 100644
index 0000000..a8394b1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/62/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "62",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "59049",
+ "question_text": "Question 62. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID: 8232513150\n\nPAGE\n43\n\nLet S be a set consisting of 10 elements. The of tuples of the form (A, B) such that A and B are \nsubsets of S, and \nA\nB\n\uf0cd\n is ____",
+ "answer_text": "59049",
+ "explanation_text": "Sol.\n \nAs B is subset of S, B set can have any number of elements from set S, and for each type of B subset, \nfurther A can have any number of elements from B, therefore\nAll the possibilities can be summarised below: -\n\nNumber of Elements in B \nNumber of elements in A\n\nNo element \nNo Element\n\n1\n1\n0\n1\n2\nC\nC\n+\n=\n10\n1\nC\n1 =>\n\n2\nC\n \n2\n2\n2\n2\n0\n1\n2\n2\nC\nC\nC\n+\n+\n=\n10\n2 =>\n\n. \n.\n\n. \n.\n\n. \n.\n\n10 => 10C10 \n10\n10\n10\n2\n10\n10\n0\n1\n2\n10\n(2)\n(2 )\n(2 )\nC\nC X\nC X\nC X\n+\n+\n+\u2212\u2212\u2212+\n\n\nOverall number of tuples will be:\n10\n10\n10\n2\n10\n10\n0\n1\n2\n10\n(2)\n(2 )\n(2 )\nC\nC X\nC X\nC X\n+\n+\n+\u2212\u2212\u2212+\nFrom binomial theorem, it is coming out to be \n10\n3\n59049\n="
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/62/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/62/exp.webp
new file mode 100644
index 0000000..a01af48
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/62/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/62/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/62/q.webp
new file mode 100644
index 0000000..dcb73fa
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/62/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/63/data.json b/frontend/public/assets/gate/cs/questions/2021-N/63/data.json
new file mode 100644
index 0000000..5f8dcd9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/63/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "63",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "929\n\nPAGE\n44",
+ "question_text": "Question 63. \n \n \n \n \n \n \n \n \nNAT (2M)\nQuestion ID : 8232513155\nIn a directed acyclic graph with a source vertex s, the quality-score of a directed path is defined to \nbe the product of the weights of the edges on the path. Further, for a vertex v other than s. the \nquality-score of v is defined to be the maximum among the quality-scores of all the paths from s to v. \nThe quality-score of s is assumed to be 1.\ng\nt\nf\n1\n1\n9\n9\nc\nd\ne\n9\n1\n9\n1\n1\n1\n9\n1\nb\na\ns\nThe sum of the quality-score of all the vertices in the graph shown above is____",
+ "answer_text": "929\n\nPAGE\n44",
+ "explanation_text": "Sol.\n s \u2192 s = 1\ns \u2192 a = 9\ns \u2192 b = 9\ns \u2192 c = 1\ns \u2192 d = 9\ns \u2192 e = 81\ns \u2192 f = 9\ns \u2192 g = 81\ns \u2192 t = 729\nSum = 929"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/63/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/63/exp.webp
new file mode 100644
index 0000000..0756201
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/63/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/63/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/63/q.webp
new file mode 100644
index 0000000..2bbcb0f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/63/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/64/data.json b/frontend/public/assets/gate/cs/questions/2021-N/64/data.json
new file mode 100644
index 0000000..66575bd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/64/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "64",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MSQ",
+ "key": "(A), (D)",
+ "question_text": "Question 64. \n \n \n \n \n \n \n \n \nMSQ (2M)\nQuestion ID : 8232513146\nConsider the following directed graph:\n\nWhich of the following is/are correct about the graph? \n(A)\n \nA depth first traversal starting at vertex S classifies three directed edges as back edges. \n(B)\n \nThe graph does not have strongly connected components. \n(C)\n \nFor each pair of vertices u and v, there is a directed path from u to v. \n(D)\n \nThe graph does not have a topological order.\ns",
+ "answer_text": "(A), (D)",
+ "explanation_text": "Sol. \nGiven:\n\nPAGE\n45\n\nWe can observe that,\ns\nA) There are only 3 back edges, if started from S.\nB) The graph does have a strongly connected component, it has cycle.\nC) Not all rectangular/square components form a cycle.\nD) The graph does not have a topological order, because there\u2019s a cycle in the bottom left corner of \nthe graph\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/64/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/64/exp.webp
new file mode 100644
index 0000000..35e09f1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/64/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/64/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/64/q.webp
new file mode 100644
index 0000000..d9251d5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/64/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/65/data.json b/frontend/public/assets/gate/cs/questions/2021-N/65/data.json
new file mode 100644
index 0000000..61602f2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/65/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "65",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "NAT",
+ "key": "2",
+ "question_text": "Question 65. \n \n \n \n \n \n \n \n \nNAT (1M)\nQuestion ID : 8232513119\nConsider a set-associative cache of size 2KB (1KB = 2\n10\n bytes) with the cache block size of 64 bytes. \nAssume that the cache is byte addressable and a 32-bit address is used for accessing the cache. If the \nwidth of tag field is 22 bits, the associativity of the cache is______.",
+ "answer_text": "2",
+ "explanation_text": "Sol.\n \nNumber of cache lines = 2KB/64B = 32\nSet Index bits are 32-(22+6) = 4 \n\u21d2\n 16 sets are there in the cache\n\u21d2\nBits of the cache line Index = 5 \n\u21d2\n 32 cache lines\n\u21d2\n 32/2 =16 set. We will have 2-way set associative memory\n\nTAG \nSet Index \nOffset\n\n22 \n4 \n6\n\n32- bits\n\n\u2756\u2756\u2756\u2756\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/65/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/65/exp.webp
new file mode 100644
index 0000000..44597c0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/65/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/65/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/65/q.webp
new file mode 100644
index 0000000..0aa5540
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/65/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/7/data.json b/frontend/public/assets/gate/cs/questions/2021-N/7/data.json
new file mode 100644
index 0000000..733bbfa
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/7/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "7",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(C)",
+ "question_text": "Question 7. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513100\nSix students \n,\n, , ,\nP Q R S T\n and \nU\n with distance height, compare their heights and make the following \nobservations.\nObservation I: S is taller than \nR\nObservation II: \nQ\n is shorter of all\nObservation III: \nU\n is taller than only 1 student\nObservation IV: \nT\n is taller than \nS\n but is not tallest\nThe number of students that are taller than \nR\n is the same as number of student shorter than______.\n(A)\n \nT \n(B) R \n (C) S \n(D) P",
+ "answer_text": "(C)",
+ "explanation_text": "Sol. \nGiven:\nS is taller than \nR\n S > R\nQ\n is shorter of all > > Q\nU\n is taller than only 1 student U >\nT\n is taller than \nS\n but is not tallest > T > S\nCombining all drafted information & make possible case.\n1-\n \nP \n2-\n \nT \n3-\n \nS \n4-\n \nR\n\nPAGE\n5\n\n5-\n \nU \n \n6-\n \nQ\nHence it is clear that the numbers of students taller then R is the same as the numbers of students \nshorter than S."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/7/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/7/exp.webp
new file mode 100644
index 0000000..8ea1f8a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/7/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/7/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/7/q.webp
new file mode 100644
index 0000000..ad45798
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/7/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/8/data.json b/frontend/public/assets/gate/cs/questions/2021-N/8/data.json
new file mode 100644
index 0000000..a437c49
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/8/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "8",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 8. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513097\nA jigsaw puzzle has 2 pieces. One of the pieces is shown above. Which one of the given options for \nthe missing piece when assembled will form a rectangle? The piece can be moved, rotated or \nflipped to assemble with the above piece.\n(A)\n(B)\n(C)\n(D)\n \n \nAns. (B)",
+ "answer_text": "",
+ "explanation_text": "Sol. \nFor assembling the 2 pieces to form a rectangle,\nFirst; flip the figure to left side and rotate it to 90\n0\n clock wise direction and assume to put it on \nquestion figure.\nHence, the correct option is (B).\n\nPAGE\n6\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/8/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/8/exp.webp
new file mode 100644
index 0000000..a3b61ee
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/8/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/8/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/8/q.webp
new file mode 100644
index 0000000..72cffc2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/8/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/9/data.json b/frontend/public/assets/gate/cs/questions/2021-N/9/data.json
new file mode 100644
index 0000000..d367c5e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2021-N/9/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "9",
+ "stream": "computer-science-information-technology",
+ "packet": "2021-N",
+ "year": "2021",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 9. \n \n \n \n \n \n \n \n \nMCQ (2M)\nQuestion ID : 8232513096\nListening \nto \nmusic \nduring \nexercise \nimproves \nexercise \nperformance \nand \nreduces \n \ndiscomfort. \nScientists \nresearched \nwhether \nlistening \nto \nmusic \nwhile \nstudying \ncan \n \nhelp students learn better and the results were inconclusive. Students who needed \n \nexternal stimulation for studying fared worse while students who did not need any \n \nexternal stimulation benefited from music.\nWhich one of the following statements is the CORRECT inference of the above passage?\n(A) Listening to music has a clear positive effect on physical exercise. Music has a positive effect on\nlearning only in some students.\n(B) Listening to music has a clear positive effect both on physical exercise and on learning.\n(C) Listening to music has a clear positive effect on learning in all students. Music has a positive\neffect only in some students who exercise.\n(D) Listening to music has no effect on learning and a positive effect 011 physical exercise.",
+ "answer_text": "(A)",
+ "explanation_text": "Sol. \nGiven:\nListening to music during exercise improves exercise performance and reduces discomfort.\nEffect of music on students depends on the type of students.\nTherefore, listening to music has a clear positive effect on physical exercise. Music has a positive \neffect on learning only in some students."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/9/exp.webp b/frontend/public/assets/gate/cs/questions/2021-N/9/exp.webp
new file mode 100644
index 0000000..eedd3fa
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/9/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2021-N/9/q.webp b/frontend/public/assets/gate/cs/questions/2021-N/9/q.webp
new file mode 100644
index 0000000..c8a31b8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2021-N/9/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/1/data.json b/frontend/public/assets/gate/cs/questions/2022/1/data.json
new file mode 100644
index 0000000..9f468df
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/1/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "1",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "0.5",
+ "question_text": "Question 1\nConsider network with three routers P, Q, and R. All links have cost of unit, the routers exchange distance \nvector routing information & converge on routing tables. After some time link Q-R fails, assume P & Q \nsend out routing update at random time, each at same average rate. The probability of routing loop form \n(Rounded off to one decimal place) between P & Q leading to count to infinity problem is_____.\nP\nQ\nR",
+ "answer_text": "0.5",
+ "explanation_text": "Sol.\nQ\n1\n-\nP\n-\n1\n\n\uf0a5\nR\n2\nQ\nR\n-\n\nThe link between the Q - R is broken, so the probability after the convergence depends on the sharing of \ninformation between nodes P and Q, if the node Q share the information first then there will be no looping, \nif node P shares the information then there will be chance of looping so the probability will be 0.5\nSo, \n1\n0.5\n2\nP\n \uf03d\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/1/exp.webp b/frontend/public/assets/gate/cs/questions/2022/1/exp.webp
new file mode 100644
index 0000000..6f27cdd
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/1/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/1/q.webp b/frontend/public/assets/gate/cs/questions/2022/1/q.webp
new file mode 100644
index 0000000..0751611
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/1/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/10/data.json b/frontend/public/assets/gate/cs/questions/2022/10/data.json
new file mode 100644
index 0000000..28da455
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/10/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "10",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "0.85",
+ "question_text": "Question 10\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n6\n\nA code memory that has a hit rate of 0.8 has an access latency 10 ns and miss penalty 100 ns. An \noptimization is done on the cache to reduce the miss rate. However the optimization results in an increase \nof cache access latency to 15 ns, whereas the miss penalty is not affected. The minimum hit rate needed \nafter the optimization such that it should not increase the average memory access time is _____",
+ "answer_text": "0.85",
+ "explanation_text": "Sol.\nOld\nAMAT\n \n0.8(10)\n0.2(100)\n8\n20\n28.\n\uf03d\n\uf02b\n\uf03d\uf02b\n\uf03d\nLet x be the cache hit rate after optimization.\nnew\nAMAT\n \n(15) (1\n)100\n15\n100 100\n100 85\nx\nx\nx\nx\nx\n\uf03d\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf02d\n\uf03d\n\uf02d\nOld\nnew\nAMAT\nAMAT\n\uf0b3\n100 85\n28\nx\n\uf0ae\n\uf02d\n\uf0a3\n72\n85\nx\n\uf0ae\n\uf03d\n72/85\n0.85\nx\n\uf0ae\n\uf03d\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/10/exp.webp b/frontend/public/assets/gate/cs/questions/2022/10/exp.webp
new file mode 100644
index 0000000..a3c5084
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/10/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/10/q.webp b/frontend/public/assets/gate/cs/questions/2022/10/q.webp
new file mode 100644
index 0000000..22bb774
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/10/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/11/data.json b/frontend/public/assets/gate/cs/questions/2022/11/data.json
new file mode 100644
index 0000000..0076294
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/11/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "11",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A,B,C,D",
+ "question_text": "Question 11\nConsider 2 kB direct mapped cache, 64 Byte block size 64 kB main memory and 16 bit word size, CPU \naccess words \nP\n, \nQ\n, \nR\n and \nS\n respectively 10 times i.e. (\nP Q R S\n). Starting address of first byte of \n, ,\nP Q R\n \nand \nS\n is respectively.\n248,\n8 ,\n28 ,\n262\nP\nA\nQ\nCA A R\nC\nA S\nA\n\uf03d\n\uf03d\n\uf03d\n\uf03d\nWhich of the following is/are true (initially cache is empty)\n(A) Expect for the first time P is always a hit\n(B) S is always a hit\n(C) Q is replaced every time \nR\n is accessed\n(D) \nS\n and \nQ\n remain in the main memory after complete execution.",
+ "answer_text": "A,B,C,D",
+ "explanation_text": "Sol.\n \nCache line \n2kB\n32\n64B\n \n\uf03d\n\uf05c\n Line offset \n5bit\n\uf03d\nBits in Physical address = \n2\nlog\n (Main memory size = \n2\nlog\n (64 kB) = 16 bit)\nPhysical address format for direct mapped cache\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n7\n\nP.A=16 bit\nL.O\nW.O\nTag\n5bit\n6bit\nPhysical address format for main memory\n\nTag in main memory\n\uf03d\n\uf03d\nP\nA\n2\n4\n8\n1\n0\n1\n0,\n0\n0 1\n0,\n0\n1\n0\n0,\n1\n0\n0\n0\n\uf03d\n\uf03d\nQ\nC\nA\nA\n8\n1\n1\n0\n0,\n1\n0 1\n0,\n1\n0\n0\n0,\n1\n0\n1\n0\n\uf03d\n\uf03d\nR\nC\nA\n2\n8\n1\n1\n0\n0,\n0\n0 1\n0,\n1\n0\n0\n0,\n1\n0\n1\n0\n\uf03d\n\uf03d\nS\nA\n2\n6\n2\n1\n0\n1\n0,\n0\n0 1\n0,\n0\n1\n1\n0,\n0\n0\n1\n0\nTag in cache\nL.O\nW.O\n\u25cf \nP and S are in same block of memory physical address\n\u25cf \nQ and S are different block of main memory but mapped to same cache line."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/11/exp.webp b/frontend/public/assets/gate/cs/questions/2022/11/exp.webp
new file mode 100644
index 0000000..3c275b9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/11/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/11/q.webp b/frontend/public/assets/gate/cs/questions/2022/11/q.webp
new file mode 100644
index 0000000..5573688
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/11/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/12/data.json b/frontend/public/assets/gate/cs/questions/2022/12/data.json
new file mode 100644
index 0000000..2207bfb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/12/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "12",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "1.42\nExecution timeusing\nExecution timeusing\nx\nx",
+ "question_text": "Question 12\nConsider processor \n1\nx\n with 5 stage standard RISC pipeline with 2 GHz clock frequency. It requires one\nclock cycle without any pipeline dependency A program consist of 30% branch instruction, control \nhazards results in 2 clock cycles. Another pipeline \n2\nx\n with same clock cycle frequency uses branch \nprediction unit with 80 % efficiency. If prediction is correct then no stall is created and if prediction is \nwrong then no effect in number of stalls. There is no data hazard or structure hazard in the pipeline what \nis the speed up achieved using \n2\nx\n and \n1\nx\n .",
+ "answer_text": "1.42\nExecution timeusing\nExecution timeusing\nx\nx",
+ "explanation_text": "Sol.\n \nSpeed Up \n2\nx\n over \n1\nx\n =\n1\n2\n\uf0b4\n\uf03d\n\uf0b4\n(AvgCPI)\nCycletime\nx\n\n\n1\n(AvgCPI)\nCycletime\nx\n2\n\uf02b\n\uf0b4\n\uf0b4\n\uf03d\n\uf02b\n\uf0b4\n\uf0b4\uf02b\n\uf0b4\n\uf0b4\n(1 0.3 2)\nt\np\n\uf028\n\uf029\n\n1 0.3 (0.8 0\n0.2 2)\nt\np\n1.6\n1.42\n1.12\n\uf03d\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/12/exp.webp b/frontend/public/assets/gate/cs/questions/2022/12/exp.webp
new file mode 100644
index 0000000..9ca6055
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/12/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/12/q.webp b/frontend/public/assets/gate/cs/questions/2022/12/q.webp
new file mode 100644
index 0000000..5c8f99c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/12/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/13/data.json b/frontend/public/assets/gate/cs/questions/2022/13/data.json
new file mode 100644
index 0000000..edd89d2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/13/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "13",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "D\nQ.14 \nLet WB and WT be 2 set associative cache organizations that use LRU algorithm for cache block\nreplacement. WB is Write Back cache and WT is Write through cache. Winch of the following statements \nare false?\n1 Mark MSQ\n(A) Every write hit in WB leads to a data transfer from cache to main memory\n(B) Eviction of a block from WT will not lead to data transfer from cache to main memory\n(C) A read miss in WB will never lead to eviction of a dirty block from WB\n(D) Each cache block in WB and WT has a dirty bit\n \nA and C",
+ "question_text": "Question 13\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n8\n\nWhich facilitates transfer of bulk data from HDD to main memory with highest throughout?\n(A) Programmed I/O transfer\n(B) Interrupt driven I/O transfer\n(C) Polling based I/O transfer\n(D) DMA based I/O transfer.",
+ "answer_text": "D\nQ.14 \nLet WB and WT be 2 set associative cache organizations that use LRU algorithm for cache block\nreplacement. WB is Write Back cache and WT is Write through cache. Winch of the following statements \nare false?\n1 Mark MSQ\n(A) Every write hit in WB leads to a data transfer from cache to main memory\n(B) Eviction of a block from WT will not lead to data transfer from cache to main memory\n(C) A read miss in WB will never lead to eviction of a dirty block from WB\n(D) Each cache block in WB and WT has a dirty bit\n \nA and C",
+ "explanation_text": "Sol.\n \nA. Every write hit in WB leads to a data transfer from cache to main memory. False, for the hit operation\nno need to fetch the data from the main memory.\nB. Eviction of a block from WT will not lead to data transfer from cache to main memory\nFalse.\nC. A read miss in WB will never lead to eviction of a dirty block from WB\nD. Each cache block in WB and WT has a dirty bit\nTheory of Computation\n\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/13/exp.webp b/frontend/public/assets/gate/cs/questions/2022/13/exp.webp
new file mode 100644
index 0000000..f0557c6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/13/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/13/q.webp b/frontend/public/assets/gate/cs/questions/2022/13/q.webp
new file mode 100644
index 0000000..8110b2d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/13/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/15/data.json b/frontend/public/assets/gate/cs/questions/2022/15/data.json
new file mode 100644
index 0000000..5b0d357
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/15/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "15",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A,C,D",
+ "question_text": "Question 15\nWhich of the following statements is are true?\n(A) If \n1\n2\nand\nL\nL\n are regular, then \n1\n2\nL\nL\n\uf0c7\nmust be DCFL.\n(B) Every subset of recursively enumerable Language is recursive\n(C) If Language L & its complement \nL\n are both recursively enumerable then L must be recursive\n(D) Complement of context free language must be recursive.",
+ "answer_text": "A,C,D",
+ "explanation_text": "Sol.\nOption A: True\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n9\n\nIf \n1\nL\n \nand \nL\n2\n \nare \nregular \nthen \n1\n2\nL\nL\n\uf0c7\n \nis \nRegular \nthus \nalso \ndeterministic\ncontext free Language.\nOption B:\n False\nSince \n*\n\uf0e5\n is a recursively enumerable Language but there are many languages which are subset of \n*\n\uf0e5\n \nwhich are not Recursive.\nOption C: True\nIf L is recursively enumerable Language, then for all member strings of L, the TM of L will halt within \nfinite time. If \nL\n is recursively enumerable Language, then for all nonmember strings of L. The TM of \nL\n \nwill halt within finite time. Thus for both member and nonmember strings of L and \nL\n we have a TM \nwhich halts within finite time. Thus \nL\n is a Recursive Language.\nOption D:\n True\nComplement of CFL is a CSL in the worst case which is Recursive."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/15/exp.webp b/frontend/public/assets/gate/cs/questions/2022/15/exp.webp
new file mode 100644
index 0000000..0f66342
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/15/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/15/q.webp b/frontend/public/assets/gate/cs/questions/2022/15/q.webp
new file mode 100644
index 0000000..c480329
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/15/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/16/data.json b/frontend/public/assets/gate/cs/questions/2022/16/data.json
new file mode 100644
index 0000000..ebd77c7
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/16/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "16",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B,C,D",
+ "question_text": "Question 16\n\uf07b\n\uf07d\n*\n1\n|\n( , )\nL\nww w\na b\n\uf03d\n\uf0ce\n2\n{\n,\n0}\nn\nn\nm\nL\na b c m n\n\uf03d\n\uf0b3\n3\n{\n,\n0}\nm\nn\nn\nL\na b c m n\n\uf03d\n\uf0b3\nWhich of the following statements are false?\n(A) \n1\nL\n is not CFL but \n2\nL\n and \n3\nL\n are DCFL. (B) \n2\n3\n,\nL L\n and \n2\n3\nL\nL\n\uf0c7\n all are CFL.\n(C) Neither \n1\nL\n nor \n2\nL\n is CFL. \n(D) Neither \n1\nL\n nor its complement is CFL.",
+ "answer_text": "B,C,D",
+ "explanation_text": "Sol.\n*\n1\n{\n{ , } }\nL\nww w\na b\n\uf03d\n\uf0ce\n this language is not CFL but complement of \n1\nL\n is CFL.\n2\n{\n0}\nn\nn\nm\nL\na b c nm\n\uf03d\n\uf0b3\n is CFL\n3\n{\n,\n0}\nn\nm\nm\nL\na b c n m\n\uf03d\n\uf0b3\n is CFL\n2\n3\nL\nL\n\uf0c7\n is not CFL.\n(B), (C) and (D) are false"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/16/exp.webp b/frontend/public/assets/gate/cs/questions/2022/16/exp.webp
new file mode 100644
index 0000000..e69a17e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/16/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/16/q.webp b/frontend/public/assets/gate/cs/questions/2022/16/q.webp
new file mode 100644
index 0000000..c5d4e62
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/16/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/17/data.json b/frontend/public/assets/gate/cs/questions/2022/17/data.json
new file mode 100644
index 0000000..765efd5
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/17/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "17",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A,C,D",
+ "question_text": "Question 17\nWhich of the following is/are undecidable?\n(A) Given a TM M, decide is M accepts are strings.\n(B) Given a TM, M decide is M takes more than 1073 steps on every string.\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n10\n\n(C) Given two turing machines \n1\nM\n and \n2\nM\n decide of \n1\n2\n(\n)\n(\n)\nL M\nL M\n\uf03d\n.\n(D) Given a TM M, decide is \n(\n)\nL M\n is regular.",
+ "answer_text": "A,C,D",
+ "explanation_text": "Sol. \nFor a given TM, M decide that m takes more than 1073 steps on every string is decidabe only.\nRemaining are undecidable\n(A), (C) and (D) are undecidable."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/17/exp.webp b/frontend/public/assets/gate/cs/questions/2022/17/exp.webp
new file mode 100644
index 0000000..82a7091
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/17/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/17/q.webp b/frontend/public/assets/gate/cs/questions/2022/17/q.webp
new file mode 100644
index 0000000..ef87981
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/17/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/18/data.json b/frontend/public/assets/gate/cs/questions/2022/18/data.json
new file mode 100644
index 0000000..b5fd17f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/18/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "18",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "C",
+ "question_text": "Question 18\nb\na\nb\na\na\nb\n(A) \n(\n* )*\n* (\n* )*\n*\nab b\nab\nba a\nba\n\uf02b\n \n(B) \n*\n*\n*\n*\nab bab\nba aba\n\uf02b\n(C) \n(\n*\n* )*(\n*\n*)\nba a\nab b\nab\nba\n\uf02b\n\uf02b\n \n(D) \n(\n*\n* )*( *\n*)\nab b\nba a\na\nb\n\uf02b\n\uf02b",
+ "answer_text": "C",
+ "explanation_text": "Sol.\nb\na\na b\n*\nba a\n*\n(\n*\n* )(\n*\n*)\nab b\nba a ab\nba\n\uf0de\n\uf02b\n\uf02b\nb\na"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/18/exp.webp b/frontend/public/assets/gate/cs/questions/2022/18/exp.webp
new file mode 100644
index 0000000..a805471
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/18/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/18/q.webp b/frontend/public/assets/gate/cs/questions/2022/18/q.webp
new file mode 100644
index 0000000..3c2b6c3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/18/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/19/data.json b/frontend/public/assets/gate/cs/questions/2022/19/data.json
new file mode 100644
index 0000000..fa63c4d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/19/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "19",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A, C, D",
+ "question_text": "Question 19\nConsider language\n\uf07b\n\uf07d\n1\n|\n{ , }*\nn\nn\nL\na\na\na b\n\uf03d\n\uf077\n\uf077\uf0ce\n\uf07b\n\uf07d\n2\n| ,\n{ , }*,\n,\n0\nR\nL\nx\nx\na b\nx\n\uf03d\uf077\uf077\n\uf077\n\uf0ce\n\uf077\n\uf03e\nNote \nR\n\uf077\n is reversal of string \n\uf077\n which is true?\n(A) \n1\nL\n regular and \n2\nL\n is context free language (B) \n1\nL\n and \n2\nL\n are context free language but not regular\n(C) \n1\nL\n and \n2\nL\n are context free language \n(D) \n1\n2\n,\nL L\n are regular",
+ "answer_text": "A, C, D",
+ "explanation_text": "Sol. \n*\n1\n{\n( , ) }\nn\nn\nL\na\na\na b\n\uf03d\n\uf077\n\uf077\uf0ce\n is regular\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n11\n\n*\n2\n{\n,\n( , ) ,\n,\n0}\nR\nL\nx\nx\na b\nW\nx\n\uf03d\uf077\uf077\uf077\n\uf0ce\n\uf03e\n \nis also regular\n\uf05c\n \nBoth \n1\nL\n and \n2\nL\n are regular\nAny language which is regular is context free language as well.\nEngineering Mathematics"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/19/exp.webp b/frontend/public/assets/gate/cs/questions/2022/19/exp.webp
new file mode 100644
index 0000000..89ab95b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/19/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/19/q.webp b/frontend/public/assets/gate/cs/questions/2022/19/q.webp
new file mode 100644
index 0000000..0da861b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/19/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/2/data.json b/frontend/public/assets/gate/cs/questions/2022/2/data.json
new file mode 100644
index 0000000..da80812
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/2/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "2",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "7.08",
+ "question_text": "Question 2\nConsider a 100 Mbps link between an earth station (sender) and a satellite (receiver) at an altitude of 2100 \nkm. The signal propagates at a speed of \n8\n3 10 m/s.\n\uf0b4\nThe time taken (in milliseconds runoff to 2 decimal \nplaces) for the receiver to completely receive a packet of 1000 bytes transmitted by the sender is _____.",
+ "answer_text": "7.08",
+ "explanation_text": "Sol.\n\n\uf0b4\n\uf03d\n\uf03d\n\uf03d\n\uf0b4\n\uf0b4\n3\nd\nt\ns\n8\n8\n2100km\n2100 10 m\n3 10 m/s\n3 10 m/s\np\n\n3\n7 10 sec\n\uf02d\n\uf03d\uf0b4\n7ms\n\uf03d\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n2\n\n\uf0b4\n\uf03d\n\uf03d\n\uf03d\n\uf0b4\n6\n1000bytes\n1000 8 bits\n100 Mbps\n100 10 bits/sec\nt\nL\nt\nR\n3\n8\n10 sec\n0.08ms\n100\n\uf02d\n\uf03d\n\uf0b4\n\uf03d\n\n0.08\n7\n7.08 ms\nt\np\nT\nt\nt\nms\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/2/exp.webp b/frontend/public/assets/gate/cs/questions/2022/2/exp.webp
new file mode 100644
index 0000000..2ef988f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/2/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/2/q.webp b/frontend/public/assets/gate/cs/questions/2022/2/q.webp
new file mode 100644
index 0000000..20940dd
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/2/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/20/data.json b/frontend/public/assets/gate/cs/questions/2022/20/data.json
new file mode 100644
index 0000000..6a637b1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/20/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "20",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "\u2013 0.5",
+ "question_text": "Question 20\nThe value of the given limit is ____\nx\ne\n\uf0ae\uf02b\n\uf02d\n2\n0\nlim\n\n1\nx\nx",
+ "answer_text": "\u2013 0.5",
+ "explanation_text": "Sol.\nx\nPut\nx\ny\n\uf03d\n2\n0\nlim\ne\n\uf0ae\uf02b\n\uf02d\n1\nx\nx\nWhen\n0\nx\n\uf02b\n\uf0ae\n \n0\ny\n \uf0ae\n\uf02d\n\uf0e6\n\uf0f6\uf0de\n\uf03d\n\uf0e7\n\uf0f7\n\uf02d\n\uf02d\n\uf0e8\n\uf0f8\n1\n1\nlim\nlim\n1\n0\n(2)\n2\ny\ny\ny\ny\ny\n2\n2\n0\n0\n\ne\ne\n\uf02b\n\uf0ae\n\uf0ae"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/20/exp.webp b/frontend/public/assets/gate/cs/questions/2022/20/exp.webp
new file mode 100644
index 0000000..d978519
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/20/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/20/q.webp b/frontend/public/assets/gate/cs/questions/2022/20/q.webp
new file mode 100644
index 0000000..e0d0d98
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/20/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/21/data.json b/frontend/public/assets/gate/cs/questions/2022/21/data.json
new file mode 100644
index 0000000..3055f08
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/21/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "21",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n12\n\nSol \nLU\nA\n\uf03d\n\uf02d\n\uf0e9\n\uf0f9\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf0eb\n\uf0fb\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\nU\nU\nU\nL\nU\nU\nL\nL\nU\n1\n0\n0\n1\n1\n2\n1\n0\n0\n1\n3\n1\n1\n0\n0\n2\n1\n5\n11\n12\n13\n\n\n21\n22\n23\n31\n32\n33\n\uf02d\n\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02b\n\uf02b\n\uf03d\n\uf02d\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02b\n\uf02b\n\uf02b\n\uf02d\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\nU\nU\nU\nL U\nL U\nU\nL U\nU\nL U\nL U\nL U\nL U\nL U\nU\n1\n1\n2\n1\n3\n1\n2\n1\n5\n11\n12\n13\n\n\n21\n11\n21\n12\n22\n21\n13\n23\n31\n11\n31\n12\n32\n22\n31\n13\n32\n23\n33\n\uf0ae\n \nComparing \n11,\n12\n13\nand\nA A\nA\n11\n1\nU\n\uf03d\n12\n1\nU\n\uf03d\n13\n2\nU\n\uf03d\uf02d\n\uf0ae\n \nComparing \n21\n,\nA\n2\n11\n.\n1\nL U\n\uf03d\nPutting value of \n11\nU\n21\n \n1\n1\nL\n \uf0b4\uf03d\n21\n1\nL\n\uf03d\n\uf0ae\n \nComparing \n22\nA\n21\n12\n22\n3\nL U\nU\n\uf02b\n\uf03d\nPutting value of \n21\nL\n and \n12\nU\n22\n1 1\n3\nU\n\uf0b4\uf02b\n\uf03d\n22\n2\nU\n\uf03d\n\uf0ae\n \nComparing \n23\nA\n21\n13\n23\n1\nL U\nU\n\uf02b\n\uf03d\uf02d\nPutting value of \n21\nL\n and \n13\nU\n23\n1\n2\n1\nU\n\uf0b4\uf02d\uf02b\n\uf03d\uf02d\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n13\n\n23\n1\nU\n\uf03d\n\uf0ae\n \nComparing \n31\nA\n31\n11\n2\nL U\n\uf03d\nPutting value of \n11\nU\n31\n \n1\n2\nL\n \uf0b4\uf03d\n31\n2\nL\n \uf03d\n\uf0ae\n \nComparing \n32\nA\n31\n12\n32\n22\n1\nL U\nL U\n\uf02b\n\uf03d\nPutting value of \n31\n12\n,\nL\nU\n and \n22\nU\n32\n2 1\n2\n1\nL\n\uf0b4\uf02b\n\uf0b4\n\uf03d\n32\n2\n1\nL\n \uf0b4\n\uf03d\uf02d\n1\n2\nL\n\uf02d\n\uf03d\n32\n\uf0ae\n \nComparing \n33\nA\n31\n13\n32\n23\n33\n5\nL U\nL U\nU\n\uf02b\n\uf02b\n\uf03d\uf02d\n33\n1\n2\n2\n1\n5\n2\nU\n\uf02d\n\uf0b4\uf02d\uf02b\n\uf0b4\uf02b\n\uf03d\uf02d\n33\n1\n4\n5\n2\nU\n\uf02d\uf02d\n\uf02b\n\uf03d\uf02d\n1\n2\nU\n\uf03d\uf02d\n\n33",
+ "question_text": "Question 21\nConsider simultaneous decomposition LU equation \n \n \n1\n2\n3\n4\nx\nx\nx\n\uf02b\n\uf02d\n\uf03d\n1\n2\n3\n3\n7\nx\nx\nx\n\uf02b\n\uf02d\n\uf03d\n1\n2\n3\n2\n5\n7\nx\nx\nx\n\uf02b\n\uf02d\n\uf03d\nWhere L and U are denoted as\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf03d\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\nL\nU\nU\nU\nL\nL\nL\nU\nU\nU\nL\nL\nL\nU\n0\n0\n0\n,\n0\n0\n0\n11\n11\n12\n13\n\n\n21\n22\n22\n23\n31\n32\n33\n33\nWhich one of the following is correct combination of values for \n32\n33\n,\nL\nU\n and \n1\nx\n ?\n(A) \n32\n33\n3\n2,\n2,\n1\nL\nU\nx\n\uf03d\n\uf03d\n\uf03d\uf02d\n \n(B) \n32\n33\n1\n1\n1\n,\n,\n0\n2\n2\nL\nU\nx\n\uf03d\uf02d\n\uf03d\uf02d\n\uf03d\n(C) \n32\n33\n1\n1\n2,\n,\n1\n2\nL\nU\nx\n\uf03d\n\uf03d\uf02d\n\uf03d\uf02d\n \n(D) \n32\n33\n1\n1 ,\n2,\n0\n2\nL\nU\nx\n\uf03d\uf02d\n\uf03d\n\uf03d",
+ "answer_text": "B\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n12\n\nSol \nLU\nA\n\uf03d\n\uf02d\n\uf0e9\n\uf0f9\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf0eb\n\uf0fb\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\nU\nU\nU\nL\nU\nU\nL\nL\nU\n1\n0\n0\n1\n1\n2\n1\n0\n0\n1\n3\n1\n1\n0\n0\n2\n1\n5\n11\n12\n13\n\n\n21\n22\n23\n31\n32\n33\n\uf02d\n\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02b\n\uf02b\n\uf03d\n\uf02d\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02b\n\uf02b\n\uf02b\n\uf02d\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\nU\nU\nU\nL U\nL U\nU\nL U\nU\nL U\nL U\nL U\nL U\nL U\nU\n1\n1\n2\n1\n3\n1\n2\n1\n5\n11\n12\n13\n\n\n21\n11\n21\n12\n22\n21\n13\n23\n31\n11\n31\n12\n32\n22\n31\n13\n32\n23\n33\n\uf0ae\n \nComparing \n11,\n12\n13\nand\nA A\nA\n11\n1\nU\n\uf03d\n12\n1\nU\n\uf03d\n13\n2\nU\n\uf03d\uf02d\n\uf0ae\n \nComparing \n21\n,\nA\n2\n11\n.\n1\nL U\n\uf03d\nPutting value of \n11\nU\n21\n \n1\n1\nL\n \uf0b4\uf03d\n21\n1\nL\n\uf03d\n\uf0ae\n \nComparing \n22\nA\n21\n12\n22\n3\nL U\nU\n\uf02b\n\uf03d\nPutting value of \n21\nL\n and \n12\nU\n22\n1 1\n3\nU\n\uf0b4\uf02b\n\uf03d\n22\n2\nU\n\uf03d\n\uf0ae\n \nComparing \n23\nA\n21\n13\n23\n1\nL U\nU\n\uf02b\n\uf03d\uf02d\nPutting value of \n21\nL\n and \n13\nU\n23\n1\n2\n1\nU\n\uf0b4\uf02d\uf02b\n\uf03d\uf02d\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n13\n\n23\n1\nU\n\uf03d\n\uf0ae\n \nComparing \n31\nA\n31\n11\n2\nL U\n\uf03d\nPutting value of \n11\nU\n31\n \n1\n2\nL\n \uf0b4\uf03d\n31\n2\nL\n \uf03d\n\uf0ae\n \nComparing \n32\nA\n31\n12\n32\n22\n1\nL U\nL U\n\uf02b\n\uf03d\nPutting value of \n31\n12\n,\nL\nU\n and \n22\nU\n32\n2 1\n2\n1\nL\n\uf0b4\uf02b\n\uf0b4\n\uf03d\n32\n2\n1\nL\n \uf0b4\n\uf03d\uf02d\n1\n2\nL\n\uf02d\n\uf03d\n32\n\uf0ae\n \nComparing \n33\nA\n31\n13\n32\n23\n33\n5\nL U\nL U\nU\n\uf02b\n\uf02b\n\uf03d\uf02d\n33\n1\n2\n2\n1\n5\n2\nU\n\uf02d\n\uf0b4\uf02d\uf02b\n\uf0b4\uf02b\n\uf03d\uf02d\n33\n1\n4\n5\n2\nU\n\uf02d\uf02d\n\uf02b\n\uf03d\uf02d\n1\n2\nU\n\uf03d\uf02d\n\n33",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/21/q.webp b/frontend/public/assets/gate/cs/questions/2022/21/q.webp
new file mode 100644
index 0000000..fe3c1c8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/21/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/22/data.json b/frontend/public/assets/gate/cs/questions/2022/22/data.json
new file mode 100644
index 0000000..7ec9deb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/22/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "22",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A,B,C",
+ "question_text": "Question 22\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n9\n6\n2\n4\n8\n6\n3\n1\n20\n15\n8\n5\n32\n21\n7\n12\nWhich is /are eigen vector for given matrix true\n\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n14\n\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n0\n1\n(A)\n\n3\n0\n\uf02d\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n1\n1\n(B)\n\n0\n1\n\uf02d\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n1\n0\n(C)\n\n2\n2\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n1\n0\n(D)\n\n1\n0",
+ "answer_text": "A,B,C",
+ "explanation_text": "Sol.\nOption (A) :\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0e9\n\uf0f9\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\n\uf03d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n9\n6\n2\n4\n1\n3\n1\n8\n6\n3\n1\n0\n0\n0\n3\n20\n15\n8\n5\n2\n6\n2\n32\n21\n7\n12\n2\n6\n2\n\n\nOption (B) :\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0e9\n\uf0f9\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\n\uf03d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf02d\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n9\n6\n2\n4\n0\n0\n0\n8\n6\n3\n1\n1\n3\n1\n3\n20\n15\n8\n5\n3\n9\n3\n32\n21\n7\n12\n0\n0\n0\n\n\nOption (C) :\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0e9\n\uf0f9\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\n\uf03d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n9\n6\n2\n4\n1\n1\n1\n8\n6\n3\n1\n1\n1\n1\n1\n20\n15\n8\n5\n0\n0\n0\n32\n21\n7\n12\n1\n1\n1\n\n\nOption (D) :\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n15\n\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0e9\n\uf0f9\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf02d\n\uf0ea\n\uf0fa\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n9\n6\n2\n4\n1\n7\n8\n6\n3\n1\n0\n5\n20\n15\n8\n5\n1\n12\n32\n21\n7\n12\n0\n25\n\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/22/exp.webp b/frontend/public/assets/gate/cs/questions/2022/22/exp.webp
new file mode 100644
index 0000000..db279aa
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/22/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/22/q.webp b/frontend/public/assets/gate/cs/questions/2022/22/q.webp
new file mode 100644
index 0000000..a870807
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/22/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/23/data.json b/frontend/public/assets/gate/cs/questions/2022/23/data.json
new file mode 100644
index 0000000..694d38a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/23/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "23",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 23\nConsider the following two statements with respect to the matrices.\n,\n,\nm n\nn m\nn n\nA\nB\nC\n\uf0b4\n\uf0b4\n\uf0b4\n and \n.\nn n\nD\n \uf0b4\nStatement 1 : \n(\n)\n(\n)\ntr AB\ntr BA\n\uf03d\nStatement 2 : \n(\n)\n(\n)\ntr CD\ntr DC\n\uf03d\nWhere \n()\ntr\nrepresents the trace of a matrix which one of the following holds?\n(A) Both statement 1 and 2 are correct.\n(B) Statement 1 is true and statement 2 is false\n(C) Statement 1 is false and statement 2 is true\n(D) Both Statement 1 and 2 are wrong.",
+ "answer_text": "A",
+ "explanation_text": "Sol.\nThe eigenvalues (counting multiplicity) of AB are the same as those of BA\nIf\n \nA is an m by n matrix and\n \nB is an n by m matrix with \nn\nm\n\uf0b3\n then the characteristic polynomial \nBA\np\n of\nBA is related to the characteristic polynomial \nAB\np\n of\n \nAB by\n( )\n( )\nn m\nBA\nAB\np\nt\nt\np\nt\n\uf02d\n\uf03d\nSince Eigenvalues are the same thus the sum of Eigen Values (i.e. the Trace) is also the same.\nDiscrete Mathematics"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/23/exp.webp b/frontend/public/assets/gate/cs/questions/2022/23/exp.webp
new file mode 100644
index 0000000..b31f2c2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/23/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/23/q.webp b/frontend/public/assets/gate/cs/questions/2022/23/q.webp
new file mode 100644
index 0000000..8c65369
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/23/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/24/data.json b/frontend/public/assets/gate/cs/questions/2022/24/data.json
new file mode 100644
index 0000000..8864fb7
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/24/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "24",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "36",
+ "question_text": "Question 24\nConsider a simple undirected graph of 10 vertices if the graph is disconnected then the maximum number \nof edges it can have is__________.",
+ "answer_text": "36",
+ "explanation_text": "Sol.\nSuppose we have 1 vertex on one side and other n-1 vertices on another side. To make it connected \nmaximum possible edges (if consider it as complete graph) is\nn\nn\nn\nC\n \n\uf02d\n\uf02d\n\uf02d\n(\n1)(\n2)\nwhich is\n2\n1\n2\n\nThus to make it a disconnected graph we have 1 separate vertex on another side which is not connected. \nThus the maximum possible edges is\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n16\n\n1\n9\n2\n2\n9*8 / 2\n36\nn\nC\nC\n\uf02d\n\uf03d\n\uf03d\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/24/exp.webp b/frontend/public/assets/gate/cs/questions/2022/24/exp.webp
new file mode 100644
index 0000000..71d2f5b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/24/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/24/q.webp b/frontend/public/assets/gate/cs/questions/2022/24/q.webp
new file mode 100644
index 0000000..b6a0d86
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/24/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/25/data.json b/frontend/public/assets/gate/cs/questions/2022/25/data.json
new file mode 100644
index 0000000..fc2b5d5
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/25/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "25",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B",
+ "question_text": "Question 25\nWhich one of the following is closed form for the generating function of the sequence \n0\n{\n}\nn\nn\na\n\uf0b3\ndefined\nbelow?\nn\nn\na\n\uf02b\n\uf03d\n\uf0ec\n\uf03d\uf0ed\n1,\nodd\n\n1,\nOtherwise\nn\n\uf0ee\n2\n2\n(1\n)\n1\n(1\n)\n1\nx\nx\nx\nx\n\uf02b\n\uf02b\n\uf02d\n\uf02d\n \n \n(B) \n2 2\n2\n1\n(1\n)\n1\nx\nx\nx\n\uf02b\n\uf02d\n\uf02d\n(A)\n2\n2\n(3\n)\n1\n(1\n)\n1\nx\nx\nx\nx\n\uf02d\n\uf02b\n\uf02d\n\uf02d\n2\n(C) \n2 2\n2\n1\n(1\n)\n1\nx\nx\nx\n\uf02b\n\uf02d\n\uf02d\n \n \n(D)",
+ "answer_text": "B",
+ "explanation_text": "Sol.\nn\nn\na\n\uf02b\n\uf03d\n\uf0ec\n\uf03d\uf0ed\n1,\nodd\n1,\notherwise\nn\n\n\uf0ee\n\uf0a5\n\uf03d\n\uf03d\n\uf0e5\n0\n( )\nr\nr\nr\nG x\na x\n\n\uf0a5\n\uf0a5\n\uf03d\n\uf03d\n\uf03d\n\uf02b\n\uf0e5\n\uf0e5\n0 (even)\n1(odd)\n( )\nr\nr\nr\nr\nr\nr\nG x\na x\na x\n\n\uf0a5\n\uf0a5\n\uf03d\n\uf03d\n\uf03d\n\uf02b\n\uf02b\n\uf0e5\n\uf0e5\n0 even\n1 odd\n( )\n(\n1)\nr\nr\nr\nr\nG x\nx\nr\nx\n\nAs we know,\n2\n3\n4\n5\n1\n1\n......\n1\nx\nx\nx\nx\nx\nx\n \n\uf03d\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02d\n\n2\n4\n6\n8\n10\n2\n1\n1\n......\n1\nx\nx\nx\nx\nx\nx\n \n\uf03d\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02d\n \n...(i)\n\n3\n5\n7\n4\n2\n2\n2\n2\n4\n6\n8\n10\n.....\n1\nx\nx\nx\nx\nx\nx\nx\n\uf03d\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02d\n\n\u2026(ii)\n\uf028\n\uf029\nAdd equation (i) and (ii)\n2\n3\n4\n5\n6\n2\n2\n2\n1\n2\n1 2\n4\n6\n......\n1\n1\nx\nx\nx\nx\nx\nx\nx\nx\nx\n\uf02b\n\uf03d\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02d\n\uf02d\n\n\n\uf028\n\uf029\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n17\n\n\uf02b\n\uf02d\n\uf02b\n\uf03d\n\uf02b\n\uf02b\n\uf02d\n\uf02d\n\uf0e5\n\uf0e5\n\uf0a5\n\uf0a5\n1\n2\n1\n1\n1\nx\nx\nx\nx\nr\nx\nx\nx\n\uf028\n\uf029\n2\n2\n2\n0(even)\n1 (odd)\nr\nr\n\n\uf028\n\uf029\n\uf03d\n\uf03d\nr\nr\n\uf02b\n\uf02d\n\uf02b\n\uf03d\n\uf02d\n\uf02d\n\uf02d\n2\n2\n2\n2\n1\n2\n( )\n1\n1\n1\nx\nx\nx\nG x\nx\nx\nx\n\uf0de\n\n\uf028\n\uf029\n\uf0de\n \n2\n2\n1\n2\n( )\n1\n1\n1\n1\nx\nG x\nx\nx\nx\n\uf0e6\n\uf0f6\n\uf03d\n\uf02b\n\uf02d\uf02b\n\uf0e7\n\uf0f7\n\uf02d\n\uf02d\n\uf02d\n\uf0e8\n\uf0f8\n\n2\n2\n1\n1\n2\n1\n1\n1\nx\nx\nx\nx\nx\n\uf0e6\n\uf0f6\n\uf02d\uf02b\n\uf02b\n\uf02b\n\uf0e7\n\uf0f7\n\uf02d\n\uf02d\n\uf02d\n\uf0e8\n\uf0f8\n2\n\uf0de\n\n\uf0de\n \n\uf028\n\uf029\n\uf02b\n\uf02b\n\uf02d\n\uf02d\n2\n2\n2\n1\n1\n1\n1\nx\nx\n\n\uf028\n\uf029\nx\nx"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/25/exp.webp b/frontend/public/assets/gate/cs/questions/2022/25/exp.webp
new file mode 100644
index 0000000..459890d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/25/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/25/q.webp b/frontend/public/assets/gate/cs/questions/2022/25/q.webp
new file mode 100644
index 0000000..532f657
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/25/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/26/data.json b/frontend/public/assets/gate/cs/questions/2022/26/data.json
new file mode 100644
index 0000000..ecf811e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/26/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "26",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B",
+ "question_text": "Question 26\nConsider simple undirected graph with atleast 3 vertices, if A is adjacency matrix of graph then the number \nof 3-cycle is given by trace of\n3\n3\nA\n(A)\n3\n6\nA\n(B)\n(C) \n3\nA\n3\n2\nA\n(D)",
+ "answer_text": "B",
+ "explanation_text": "Sol.\nDiagonal element of \n3\nA\n gives number of paths of length 3, from any vertex to itself (cycle of 3).\nFor each participating vertex, each cycle will be counted thrice. As given below (ABCA, BCAB and \nCABC).\nA\nC\nB\nFurthermore, since the graph is undirected, every cycle will be counted twice. So overall every cycle of \nlength 3 in \n3\nA\n will be counted 6 times, so we divide by 6 also. Therefore, the number of Cycle is trace of \n(\nA\n3\n) / 6.\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n18\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/26/exp.webp b/frontend/public/assets/gate/cs/questions/2022/26/exp.webp
new file mode 100644
index 0000000..bb3e6b8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/26/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/26/q.webp b/frontend/public/assets/gate/cs/questions/2022/26/q.webp
new file mode 100644
index 0000000..23289bf
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/26/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/27/data.json b/frontend/public/assets/gate/cs/questions/2022/27/data.json
new file mode 100644
index 0000000..71eefb0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/27/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "27",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A,B,D",
+ "question_text": "Question 27\nWhich of the following is /are true for group G?\n(A) If the order of G in 2, then G is commutative\n(B) If for all \n,\nx y\nG\n\uf0ce\n, \n2\n2\n2\n(\n)\nxy\nx y\n\uf03d\n, then G in commutative.\n(C) If G is commutative then a subgroup of G need not to be commutative\n(D) If for all \nx\nG\n\uf0ce\n,\n2\n1\nx\n \uf03d\n, then G in commutative, here 1 in identity element of G",
+ "answer_text": "A,B,D",
+ "explanation_text": "Sol.\nA. True\nTheorem : All groups with less than 6 elements are abelian\nB. \nTrue\nTo prove that G is an abelian group, we need \nab\nba\n\uf03d\n for any elements \na\n.\nb\n in \nG\n.\nBy the given relation, we have \n2\n2\n2\n(\n)\n.\nab\na b\n\uf03d\nThe left hand side is \n2\n(\n)\n(\n)(\n).\nab\nab\nab\n\uf03d\nand thus the relation becomes \n2\n2\n2\n(\n)\n(\n)\n.\nab\nab\na b\n\uf03d\n\uf03d\nEquivalently. we can express it as \n(\n)(\n)\n.\nab ab\naabb\n\uf03d\nMultiplying by \n1\na\n\uf02d\non the left and \n1\n011\nb\n\uf02d\nthe right, we obtain \n1\n1\n1\n~ (\n) ~\n~ (\n) ~ .\nI\na\nabab b\na\naabb b\n\uf03d\nSince \n1\n1\n.\n.\na a\ne bb\ne\n\uf02d\n\uf02d\n\uf03d\n\uf03d\n where \ne\n is the identity element of \n.\nG\nr\nw e\n have \n.\nebae\neabe\n\uf03d\nSince e is the identity element, it yields that \nba\nab\n\uf03d\nand this implies that \nG\n is an abelian group.\nC. False\nJust use proof by contradiction.\nSuppose \nH\n is not abelian and thus contains two non-commuting members \nx\n and \ny\n. Then \n^\n.\nxy\nyx\n But \nx\n \nand \ny\n are also in \nG\n. and thus \nG\n is not abelian.\nContradiction.\nD. True\nWhenever we have a condition \n2\ng\ne\n\uf03d\n in a group, it's equivalent to \n1\ng\ng\n \n\uf02d\n\uf03d\n(multiply both sides by\n1\ng\n \n\uf02d\n).\nIn this case, it applies to every element of the group, so we can add remove inverses from any expression \nfreely. So the proof is simply\n1\n1\n1\n(\n)\n.\nab\nab\nb a\nba\n\uf02d\n\uf02d\n\uf02d\n\uf03d\n\uf03d\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/27/exp.webp b/frontend/public/assets/gate/cs/questions/2022/27/exp.webp
new file mode 100644
index 0000000..436bdb9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/27/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/27/q.webp b/frontend/public/assets/gate/cs/questions/2022/27/q.webp
new file mode 100644
index 0000000..7f57f8e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/27/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/28/data.json b/frontend/public/assets/gate/cs/questions/2022/28/data.json
new file mode 100644
index 0000000..3860f99
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/28/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "28",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A, B, D",
+ "question_text": "Question 28\nPeterson graph is given below, for the given graph which of the following is correct?\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n19\n\n(A) Hamilton path exist in the given graph\n(B) Chromatic number is 3\n(C) Largest independent set has size 3\n(D) Following graph is isomorphic to Peterson graph.",
+ "answer_text": "A, B, D",
+ "explanation_text": "Sol.\nA. True\n\n\nB. \nTrue\nRed\nGreen\nGreen\nGreen\nBlue\nBlue\nBlue\nRed\n\nGreen\nRed\nC. \nFalse:\nA set of vertices I is called an independent set if no two vertices in set I are adjacent to each other \nor in other words the set of non-adjacent vertices is called an independent set.\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n20\n\nIt is 4. From option B by simply keeping all the green vertices together we can simply observe that \nlargest independent set contains 4 vertices.\nD. \nTrue :\nWe can say given graphs are isomorphic if they have :\n1. \nEqual number of vertices\n2. \nEqual number of edges\n3. \nSame degree sequence\n4. \nSame number of circuit of particular length\nNote : In most graphs checking the first three conditions is enough."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/28/exp.webp b/frontend/public/assets/gate/cs/questions/2022/28/exp.webp
new file mode 100644
index 0000000..a54b15a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/28/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/28/q.webp b/frontend/public/assets/gate/cs/questions/2022/28/q.webp
new file mode 100644
index 0000000..272bbc8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/28/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/29/data.json b/frontend/public/assets/gate/cs/questions/2022/29/data.json
new file mode 100644
index 0000000..27a0aa0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/29/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "29",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "7",
+ "question_text": "Question 29\nThe number of arrangement of 6 identical ball in 3 identical bins__________.",
+ "answer_text": "7",
+ "explanation_text": "Sol.\nIt is the case of distribution with identical objects and identical boxes.\nWe simply need to partition number 6 in to maximum 3 parts and count the partition.\n(6,0,0), (5,1,0), (4,2,0), (4,1,1), (3,2,0), (3,1,1), (2,2,2).\nAlgorithms"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/29/exp.webp b/frontend/public/assets/gate/cs/questions/2022/29/exp.webp
new file mode 100644
index 0000000..d19a42f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/29/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/29/q.webp b/frontend/public/assets/gate/cs/questions/2022/29/q.webp
new file mode 100644
index 0000000..2ecbda9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/29/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/3/data.json b/frontend/public/assets/gate/cs/questions/2022/3/data.json
new file mode 100644
index 0000000..f8f2654
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/3/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "3",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "33",
+ "question_text": "Question 3\nWhat is the minimum number of bits required for sequence number field in a TCP connection to send \nmaximum segment life time of 60 sec if the bandwidth of connection is 1 Gbps, without wrap around time.",
+ "answer_text": "33",
+ "explanation_text": "Sol.\nB = 1 Gbps\n2\nn\nbytes\nT\nB\n\uf03d\n, \nSequence Number bits\nn\n \uf03d\n\uf0b4\n\uf03d\nn\nbits\nbits\n\uf0de\n \n9\n2\n8\n60sec\n10\n/ sec\n\uf0de\n \n9\n3\n60 10\n2\nn\n\uf02b\n\uf0b4\n\uf03d\n\uf0de\n \n9\n2\nlog (60 10 )\nn 3\n\uf0b4\n\uf03d\uf02b\n\uf0de\n \n2\nlog60\n9 log 10\nn 3\n\uf02b\uf0b4\n\uf03d\uf02b\n\uf0de\n \n5.9\n29.87\n3\nn\n\uf02b\n\uf03d\n\uf02b\n\uf0de\n \n35.79\n3\nn\n\uf03d\n\uf02b\n\uf0de\n \n3\n36\nn\n \uf02b\n\uf03d\n\uf0de\n \n33\nn\n \uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/3/exp.webp b/frontend/public/assets/gate/cs/questions/2022/3/exp.webp
new file mode 100644
index 0000000..1af498e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/3/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/3/q.webp b/frontend/public/assets/gate/cs/questions/2022/3/q.webp
new file mode 100644
index 0000000..babf3c0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/3/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/30/data.json b/frontend/public/assets/gate/cs/questions/2022/30/data.json
new file mode 100644
index 0000000..cf0fd39
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/30/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "30",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A, C",
+ "question_text": "Question 30\nWhich of the properties hold for the adjacency matrix A of a simple undirected unweighted graph having \nn vertices?\n(A) The diagonal entries of \n2\nA\n are the degrees of the vertices of the graph\n(B) If the sum of all the elements of \nA\n is at most \n2(\n1)\nn\n\uf02d\n then the graph must be acyclic\nn\nA\nI\n\uf02d\n\uf02b\n can be zero\n1\nn\n(C) If the graph is connected then none of the entries of\n(D) If there is at least a 1 in each of A\u2019s rows and columns, then the graph must be connected",
+ "answer_text": "A, C",
+ "explanation_text": "Sol.\nOption A : True\n,\n(\n) ,\ni i\nA\n the \ni\nth\n\uf02d\n term on the diagonal is. We have\nLet\u2019s think about what \n2\n,\n(\n)\n(\n)\n,\nii\nii\ni\nj\nj i\nA\nA A\njA\nA\n\uf03d\n\uf0b4\n\uf03d\n\uf0e5\n2\nBut \n, ,\nij\nj i\nA\nA\n\uf03d\n assuming that the graph is undirected, and \n1( ~ ), . .\nji\nA\ni\nj i e\n\uf03d\n is \n1\n is \ni\n and \nj\n are adjacent and\n0 otherwise. Thus \n2\n,\n,\n,\n1( ~ ).\nij\nj i\ni j\ni j\nA A\nA\nA\ni\nj\n\uf03d\n\uf03d\n\uf03d\n So the sum is just the number of \nj\n such that \n~ ,\ni\nj\n which\nprecisely the degree is.\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n21\n\nThis work if vertices in your graph may have a single self-loop, provided you count that as 1 (not 2) for \nthe degree. Indeed, the term in the sum when \nj\ni\n\uf03d\n is just \n2\n, ,\ni i\nA\n but you need this to be equal to \n,\n \n.\ni i\nA\nThus it needs to be 0 or 1.\n,\nii\ni j\nA\nA\n\uf0b9\n if \n,\n1.\ni j\nA\n\uf03e\nIt does not work more generally, however, as \n2\ni j\ni\ni j\nA A\nA\ni\n\uf03d\n\uf03d\n\uf0e5\n2\n,\n,\nout\n(\n)\ndeg\n( ),\nT\neven for an undirected graph, provided the graph is simple.\nOption : B False.\nA cyclic graph is a graph containing at least one graph cycle. Consider a graph with 10 vertices where \nonly three vertices form a cycle while reset are isolated vertices (that is a disconnected graph)\n\nIn such a case, sum of all the elements of A is \n(1 1 1)\n3\n\uf02b\uf02b\n\uf03d\n and 3 is less than \n2(10 1)\n2*9\n18.\n\uf02d\n\uf03d\n\uf03d\n But \nthe graph is still cyclic.\nOption C : True.\nn\nA\nI\n\uf02d\n\uf02b\n represents number paths upto length \n1\nn\n \uf02d\n between pair of vertices, for a connected\n1\nn\nThe matrix\nn\nA\nI\n\uf02d\n\uf02b\n will be \nnon zero.\n1\nn\ngraph there will be at least one path between each pair of vertices, thus all entries of\nOption D : False\nConsidering the following adjacency matrix :\n1\n2\n3\n4\n1 0\n1\n0\n0\n2 1\n0\n0\n0\n\n\n3 0\n0\n0\n1\n4 0\n0\n1\n0\n\nThe corresponding graph is :\n\n\n\nThe graph is not connected\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n22\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/30/exp.webp b/frontend/public/assets/gate/cs/questions/2022/30/exp.webp
new file mode 100644
index 0000000..ef66e6e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/30/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/30/q.webp b/frontend/public/assets/gate/cs/questions/2022/30/q.webp
new file mode 100644
index 0000000..64fcb7c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/30/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/31/data.json b/frontend/public/assets/gate/cs/questions/2022/31/data.json
new file mode 100644
index 0000000..5e434bb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/31/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "31",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B,C,D\n \nA, C, D\n \n24",
+ "question_text": "Question 31\nConsider the following recurrence:\n(1)\n1\n(2 )\n2 ( ) 1,for\n1;\nf\nf\nn\nf n\nn\n\uf03d\n\uf03d\n\uf02d\n\uf0b3\n(2\n1)\n2 ( ) 1,for\n1\nf\nn\nf n\nn\n\uf02b\n\uf03d\n\uf02b\n\uf0b3\n;\nThen, which of the following statement is/are TRUE?\n(A) \n(2\n1)\n2\n1\nn\nn\nf\n\uf02b\n\uf03d\n\uf02b\n \n \n(B) \n1\n(5.2 )\n2\n1\nn\nn\nf\n\uf02b\n\uf03d\n\uf02b\n(C) \n(2\n1)\n2\n1\nn\nn\nf\n\uf02d\n\uf03d\n\uf02d\n \n \n(D) \n(2 )\n1\nn\nf\n\uf03d",
+ "answer_text": "B,C,D\n \nA, C, D\n \n24",
+ "explanation_text": "Sol. \n \n(1)\n1\nf\n\uf03d\n(2 )\n2 ( ) 1,for\n1;\nf\nn\nf n\nn\n\uf03d\n\uf02d\n\uf0b3\n {i.e. for even input to function \nf\n }\n(2\n1)\n2 ( ) 1,for\n1\nf\nn\nf n\nn\n\uf02b\n\uf03d\n\uf02b\n\uf0b3\n; {i.e. for odd input to function \nf\n }\n\nOption C and D are true as given in the following diagram.\n(1)\n1\nf\n\uf03d\n(2)\n1\nf\n\uf03d\n(3)\n2,\n(1)\n1\n3\nf\nf\n\uf03d\n\uf02b\uf03d\n(4)\n1,\n(5)\n3\nf\nf\n\uf03d\n\uf03d\n(6)\n4,\n(7)\n7\nf\nf\n\uf03d\n\uf03d\n((2 ^ ) 1)\n2 ^\n1\nf\nn\nn\n\uf02d\n\uf03d\n\uf02d\n(2 ^ )\n1\nf\nn\n \uf03d\nFor option A,\n2\n1\ndefinitly odd\nn\n \uf02b\uf03d\n\uf05c\n \n1\n(2\n1)\n2 (2\n) 1\nn\nn\nf\nf\n\uf02d\n\uf02b\n\uf03d\n\uf02b\n2(1) 1\n\uf03d\n\uf02b\n \n\uf07b\n\uf07d\n1\nAs we know\n(2\n)\n1\nn\nf\n\uf02d\n\uf03d\n3\n\uf03d\nTherefore A is false.\nFor option B,\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n23\n\n5.2\nn\n = Definitely even number for all \n1\nn\n \uf0b3\n1\n(5 2 )\n2 (5 2\n) 1\nn\nn\nf\nf\n\uf02d\n\uf0d7\n\uf03d\n\uf0d7\n\uf02d\n\uf028\n\uf029\n2\n2 2 (5 2\n) 1\n1\nn\nf\n\uf02d\n\uf03d\n\uf0d7\n\uf02d\n\uf02d\n2\n2\n2\n(5 2\n)\n2 1\nn\nf\n\uf02d\n\uf03d\n\uf0d7\n\uf02d\n\uf02d\n\uf028\n\uf029\n2\n3\n2\n2 (5 2\n) 1\n2 1\nn\nf\n\uf02d\n\uf03d\n\uf0d7\n\uf02d\n\uf02d\uf02d\n3\n3\n2\n2\n(5 2\n)\n2\n2 1\nn\nf\n\uf02d\n\uf03d\n\uf0d7\n\uf02d\n\uf02d\n\uf02d\n\n\n0\n1\n2\n3\n2\n(5 2 )\n2\n2\n2\n...\n2 1\nn\nn\nn\nn\nf\n\uf02d\n\uf02d\n\uf02d\n\uf03d\n\uf0d7\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf028\n\uf029\n\uf028\n\uf029\n2\n2\n1\n2\n(5)\n1 2\n2\n...2\n2\nn\nn\nn\nf\n\uf02d\n\uf02d\n\uf03d\n\uf02d\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n2 (3)\n(2\n1)\nn\nn\n\uf03d\n\uf02d\n\uf02d\n2 (2 1)\n(2\n1)\nn\nn\n\uf03d\n\uf02b\n\uf02d\n\uf02d\n1\n2\n2\n2\n1\nn\nn\nn\n\uf02b\n\uf03d\n\uf02b\n\uf02d\n\uf02b\n1\n2\n1\nn\n\uf02b\n\uf03d\n\uf02b\nTherefore B is false.\nQ.32\n Consider a simple undirected weighted graph G, all of whose edge weights are distinct. Which of the\nfollowing statements about the MST of G is/are true?\n\uf0b9\nand\n S\nV\n\uf0b9\n. Consider the edge with min weight such that one of its \nvertices is in S and the other in V\\S. Such an edge will always be part of any MST of G.\n(A) Suppose \nS\nV\n\uf0cd\n be such that \nS\n(B) G can have multiple spanning trees.\n(C) One or both the edges with the third smallest and the fourth-smallest edges are part of any MST of\nG.\n(D) The edge with the second-smallest weight is always part of any MST of G.\nSol.\n \nThe smallest edge is always part of the MST. The graph does not have multiple spanning trees, as all the \nedge weights are unique. The second and third-smallest edge will be part of the MST if the number of \nvertices are greater than \n3\nn\n \uf03e\n and 4 respectively.\nQ.33\n Let G (V,E) be a directed graph \nV \n= {1,2,3,4,5} is the set of vertices and E is the set of directed edges, as\ndefined by the following adjacency matrix A :\n[ ][ ] 1,\n5\nA i\nj\ni\nj\ni\n\uf03d\n\uf03c\uf03d\n\uf03c\uf03d\uf03c\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n24\n\n[ ][ ]\n1\nA i\nj\n \uf03d\n indicates a directed edge from j to i\n0, otherwise\nA directed spanning tree of G, rooted at r t V is defined as a sub-graph of G such that the undirected \nversion of T is a tree and T contains a directed path from r to every other vertex in V. The number of such \ndirected spanning trees rooted at vertex 5 is_____\nSol. \nWhen we consider a graph of two elements, we get only 1 possible MST \n(2\n1)\n\uf02d\uf03e\nWhen we consider a\ngraph of three elements, we get 2 possible MSTs \n(3\n1,3\n2or2\n1,3\n2)\n\uf02d\uf03e\n\uf02d\uf03e\n\uf02d\uf03e\n\uf02d\uf03e\n. Similarly, When we\nconsider a graph of four elements, we get only \n3 2 1\n\uf0b4\uf0b4\n possible MSTs. Similarly. When we consider a \ngraph of five elements, we get only \n4 3 2 1\n24\n\uf0b4\uf0b4\uf0b4\uf03d\n possible MSTs."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/31/exp.webp b/frontend/public/assets/gate/cs/questions/2022/31/exp.webp
new file mode 100644
index 0000000..4ceebe1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/31/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/31/q.webp b/frontend/public/assets/gate/cs/questions/2022/31/q.webp
new file mode 100644
index 0000000..748a9d4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/31/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/34/data.json b/frontend/public/assets/gate/cs/questions/2022/34/data.json
new file mode 100644
index 0000000..9865d6a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/34/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "34",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "C",
+ "question_text": "Question 34\nWhich one of the following statement is True and all positive functions \n( )?\nf n\n(A) \n2\n2\n(\n)\n( ( ) )\nf n\nf n\n\uf03d\uf057\n(B) \n2\n2\n(\n)\n( ( ) )\nf n\nO f n\n\uf03d\n(C) \n2\n2\n(\n)\n( ( ) )\nf n\nf n\n\uf03d\n, when \n( )\nf n\n is a polynomial\n(D) \n2\n2\n(\n)\n( ( ) )\nf n\nO f n\n\uf03d\n, when \n( )\nf n\n is an exponential function.",
+ "answer_text": "C",
+ "explanation_text": "Sol.\nA: It need not be true for a function which is decreasing.\nB: \nAn exponential function may be increasing or decreasing, so this condition may not always be true.\nC: \nIt always holds because if we square the input variable, then the highest order in the polynomial \nwill also get squared.\nD: It is not true in cases when \n( )\nf n\n is a polynomial function.\nC Programming"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/34/exp.webp b/frontend/public/assets/gate/cs/questions/2022/34/exp.webp
new file mode 100644
index 0000000..b3dc659
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/34/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/34/q.webp b/frontend/public/assets/gate/cs/questions/2022/34/q.webp
new file mode 100644
index 0000000..9451400
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/34/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/35/data.json b/frontend/public/assets/gate/cs/questions/2022/35/data.json
new file mode 100644
index 0000000..e1d2198
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/35/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "35",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 35\nWhat is printed by ANSI C program?\n#include \nint main (int argi, char* argv [])\n{\nint \n1\nx\n \uf03d\n, z[2]={10,11};\nint *p = NULL;\np= &x;\n*p = 10;\n\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n25\n\np = &z[1];\n*(& z [0]+1) +=3;\nprintf(\u201c%d, %d, %d/n\u201d, x , z [0], z [1]);\nreturn 0;\n}\n(A) 10, 10, 14\n(B) 1, 10, 11\n(C) 1, 10, 14\n(D) 10, 14, 11",
+ "answer_text": "A",
+ "explanation_text": "Sol.\nz\n10\n11\n200\n204\nx\n1\n100\n\uf05b\uf05d\uf07b\n\uf07d\n2\n10,11 ;\nz\n\uf03d\np\n& ;\np\nx\n\uf03d\n100\n300\nx\n1\n10\n*\n10;\np\n \uf03d\n100\np\n\uf05b\uf05d\n \n&\n1 ;\np\nz\n\uf03d\n100\n204\n*(& z [0]+1) +=3;\n300\n\uf0de\n \n*(address of II\nnd\n element of array) + = 3;\n\uf0de\n \ni.e. add 3 to II\nnd\n element of array, therefore second elements becomes 14.\nHence, 10,10,14 gets printed."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/35/exp.webp b/frontend/public/assets/gate/cs/questions/2022/35/exp.webp
new file mode 100644
index 0000000..9470fb2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/35/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/35/q.webp b/frontend/public/assets/gate/cs/questions/2022/35/q.webp
new file mode 100644
index 0000000..ff23473
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/35/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/36/data.json b/frontend/public/assets/gate/cs/questions/2022/36/data.json
new file mode 100644
index 0000000..c46a407
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/36/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "36",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "1 2 3\n10 11 12\n19 20 21",
+ "question_text": "Question 36\nWhat is printed by ANSI C programme\n#include\nint main (int arge, char * argc [])\n{\nint a [3][3][3]= {{1, 2, 3, 4, 5, 6, 7, 8, 9}{10, 11, 12, 13, 14, 15, 16, 17, 18} {19, 20, 21, 22, 23, 24, \n25, 26, 27}};\nint i= 0, j= 0, k=0;\nfor (i = 0; i< 3; i++) {\nfor(k = 0; k<3; k++)\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n26\n\nprintf(\u201c%d\u201d, a [i][j][k]); printf(\u201c\\n\u201d);}\nreturn 0;\n}",
+ "answer_text": "1 2 3\n10 11 12\n19 20 21",
+ "explanation_text": "Sol. \n \n0\nj\nk\ni\n\uf03d\n\uf03d\uf03d\n[3][3][3]\n{{1, 2, 3,......9},\n[0]\na\na\n\uf03d\n\uf0ae\n (\nFirst 2\u2013D array)\n{10, 11,......18},\n[1]\na\n\uf0ae\n \n(Second 2\u2013D array)\n{19,.....27}}\n[2]\na\n\uf0ae\n (Third 2\u2013D array)\nIn short, there are total third 2\u2013D arrays, and in the code we need to find first row of each 2D array i.e.\n1, 2, 3 \n \nFirst row of first 2-D array\n10, 11, 12 \nFirst row of second 2-D array\n19, 20, 21 \nFirst row of third 2-D array"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/36/exp.webp b/frontend/public/assets/gate/cs/questions/2022/36/exp.webp
new file mode 100644
index 0000000..4071207
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/36/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/36/q.webp b/frontend/public/assets/gate/cs/questions/2022/36/q.webp
new file mode 100644
index 0000000..9eb3f16
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/36/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/37/data.json b/frontend/public/assets/gate/cs/questions/2022/37/data.json
new file mode 100644
index 0000000..a268fad
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/37/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "37",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "z, K, S\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n27",
+ "question_text": "Question 37\nWhat is the output of given code?\nchar \n'\n';\na\nP\n\uf03d\nchar \n'x';\nb\n \uf03d\nchar \n( & )\n'*';\nc\na\nb\n\uf03d\n\uf02b\nchar \n( | )\n' ';\nd\na b\n\uf03d\n\uf02d\uf02d\nchar \n( ^ )\n' ';\ne\na b\n\uf03d\n\uf02b\uf02b\n\uf028\n\uf029\nprint\n\"% %c%c\",c,d,e ;\nf\nc\nA \nB \nC \n\u2026 \nZ \n65 \n66 \n67 \n\u2026 \n90 \na \nb \nc \n\u2026 \nz \n97 \n98 \n99 \n\u2026 \n122\n* \n+ \n\u2013\n42 \n43 \n45",
+ "answer_text": "z, K, S\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n27",
+ "explanation_text": "Sol.\nASCII value of P = 80 and \n120\nx\n \uf03d\n\uf0af\n\uf0af\n\uf03d\n\uf02b\nc\na\nb\n&\n'*'\n\n\n\uf0ae\n\uf0de\n80\n42\n122\nz\n\n\uf0af\n\uf0af\n\uf03d\n\uf02d\n\uf02d\nd\na b\n|\n' '\n\n\n\uf0ae\n\uf0de\n120\n45\n75\nK\n\uf0d9\n\uf0af\n\uf0af\n\uf03d\n\uf02b\n\uf02b\ne\na b\n' '\n\n\n\uf0ae\n\uf0de\n40\n43\n83\nS\n\nData Structure"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/37/exp.webp b/frontend/public/assets/gate/cs/questions/2022/37/exp.webp
new file mode 100644
index 0000000..9203788
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/37/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/37/q.webp b/frontend/public/assets/gate/cs/questions/2022/37/q.webp
new file mode 100644
index 0000000..cb8b0d5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/37/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/38/data.json b/frontend/public/assets/gate/cs/questions/2022/38/data.json
new file mode 100644
index 0000000..6235eff
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/38/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "38",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "509",
+ "question_text": "Question 38\nSuppose binary search tree with 1000 distinct elements is also complete binary tree. The tree in sorted \nusing array representation of Binary Heap Tree, Assuming that the array indices start with 0, the 3\nrd\n largest \nelement of tree in sorted at index _____?",
+ "answer_text": "509",
+ "explanation_text": "Sol.\nThe largest element in the BST is the right most element with index \n9\n510(2\n2\n\uf02d\n as the indexing of the \narray is starting with 0) its parent is the second-largest element and its left child is the third-largest \nelement which is of the index \n510 1\n509.\n\uf02d\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/38/exp.webp b/frontend/public/assets/gate/cs/questions/2022/38/exp.webp
new file mode 100644
index 0000000..261ec21
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/38/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/38/q.webp b/frontend/public/assets/gate/cs/questions/2022/38/q.webp
new file mode 100644
index 0000000..e8fcb7d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/38/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/39/data.json b/frontend/public/assets/gate/cs/questions/2022/39/data.json
new file mode 100644
index 0000000..04d301a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/39/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "39",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 39\nSuppose we are given n keys, m hash table slots and two simple uniform hash functions \n1\nh\n and \n2\nh\n . Further\nsuppose our hashing scheme uses \n1\nh\n for the odd keys and \n2\nh\n for the even keys. What is the expected no.\nof keys in a slot?\nm\n \n \n(D) \n2\nn\n(A) \nn\nm\n \n \n(B) \nm\nn\nn\n \n \n(C) \n2\nm",
+ "answer_text": "A",
+ "explanation_text": "Sol.\nIrrespective of the number of hash functions, the expected number of keys in a slot is given by (number \nof keys)/(number of slots) for a uniform hash function."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/39/exp.webp b/frontend/public/assets/gate/cs/questions/2022/39/exp.webp
new file mode 100644
index 0000000..cc96dfe
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/39/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/39/q.webp b/frontend/public/assets/gate/cs/questions/2022/39/q.webp
new file mode 100644
index 0000000..c54322b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/39/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/4/data.json b/frontend/public/assets/gate/cs/questions/2022/4/data.json
new file mode 100644
index 0000000..d34b275
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/4/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "4",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "12.20.164.0/20\n \nC\n\n \n3",
+ "question_text": "Question 4\nIn given table\nSubnet \u2013 1D \nMask \nInterface\n12.20.168.0 \n255.255.254.0 \n0\nI\n12.20.166.0 \n255.255.254.0 \n1\nI\n12.20.164.0 \n255.255.255.252 \n1\nR\n12.20.170.0 \n255.255.254.0 \n2\nR\n(default) \n \n3\nR\nThe route aggregation is applied over above table what will be the subnet \u2013 ID/mask in aggregated router?\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n3\n\n(A) 12.20.164.0/20 (B) 12.20.164.0/21\n(C) 12.20.168.0/22 (D) 12.20.164.0/22",
+ "answer_text": "12.20.164.0/20\n \nC\n\n \n3",
+ "explanation_text": "Sol.\n(A) 12.20.1010 0100.00000000, here the network address is 12.20.1010 0100.00000000 and this\nnetwork covers all the required IP addresses and hence the required answer.\n(B) 12.20.10100 100.00000000, here the network address is 12.20.10100 100.00000000, but this\nnetwork does not have IP address 12.20.170.0, hence this cannot be the answer.\n(C) 12.20.101010 00.00000000, here in this network address we do not have IP address 12.20.164.0,\nhence this cannot be the answer.\n(D) 12.20.101001 00.00000000, here in this network we do not have IP address 12.20.170.0, hence this\ncannot be the answer.\nSo, 12.20.164.0/20 will be the network \u2013 ID of aggregated route.\nQ.5 \nConsider an enterprise network with two Ethernet segments, a web server and a firewall, connected via \nthree routers shown below:-\nRouter 1\nFirewall\nWeb server\nRouter 2\nRouter 3\nEthernet 1\nEthernet 2\nC1\nC2\nCn\nC1\nC2\nCn\nWhat is the number of subnets in the enterprise network?\n(A) 8 \n(B) 6\n(C) 3 \n(D) 12\nSol. \nThis is just like non equal sub netting where router 2 has the half of the addresses, Router 1 has other half, \nwhich is further divided into two subnets which is Web server and router 3, So total of 3 subnets possible.\nQ.6\n \nConsider a resolution of domain name www.gate.org.in by a DNS resolver. Assume that no records are \ncalled anywhere across the DNS servers and the iterative query resolution mechanism is used in the\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n4\n\nresolution. The number of DNS query response pairs involved in completely resolving the domain name \nis ____. \n \n \n[2 Marks, NAT\n]\nSol.\n \nIn the iterative query the DNS resolver go to the these three servers which is root server, TLD DNS server, \nauthoritative server. So there will be three pairs of request and response here.\nCompiler Design"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/4/exp.webp b/frontend/public/assets/gate/cs/questions/2022/4/exp.webp
new file mode 100644
index 0000000..1a28593
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/4/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/4/q.webp b/frontend/public/assets/gate/cs/questions/2022/4/q.webp
new file mode 100644
index 0000000..767de82
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/4/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/40/data.json b/frontend/public/assets/gate/cs/questions/2022/40/data.json
new file mode 100644
index 0000000..6383835
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/40/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "40",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B",
+ "question_text": "Question 40\nConsider 2 linked list :\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n28\n\nWhat is the time complexity to get reverse of linked I and II linked list by using best algorithm and space \ncomplexity \nO\n(1).\nA\nB\nC\nD\nE\n(I)\n\nE\nD\nC\nB\nA\n(II)\n(A) \n(1)\nO\n(B) \n( )\nO n\n2\n(\n)\nO n\n(C)\n(D) Not possible in space complexity \n(1)\nO",
+ "answer_text": "B",
+ "explanation_text": "Sol.\nBest algorithm for the problem takes O(n) in worst case."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/40/exp.webp b/frontend/public/assets/gate/cs/questions/2022/40/exp.webp
new file mode 100644
index 0000000..c567d37
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/40/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/40/q.webp b/frontend/public/assets/gate/cs/questions/2022/40/q.webp
new file mode 100644
index 0000000..5c81522
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/40/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/41/data.json b/frontend/public/assets/gate/cs/questions/2022/41/data.json
new file mode 100644
index 0000000..199ec75
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/41/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "41",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "6",
+ "question_text": "Question 41\nConsider two queue\u2019s \n1\nQ\n and \n2\nQ\n such that initially \n1\nQ\n contains 4 element {1, 2, 3, 4} and \n2\nQ\n is empty.\nWhat is the min number of enqueue operations needed on \n1\nQ\n to \n2\nQ\n in reverse order?\n1\nQ\n \n1 \n2 \n3 \n4\n\n2\nQ\n \n4 \n3 \n2 \n1",
+ "answer_text": "6",
+ "explanation_text": "Sol.\nThis can be obtained by the following set of instructions\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue ( 1)\nQ\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue ( 1, )\nQ\nx\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue (\n2, )\nQ\nx\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue ( 1, )\nQ\nx\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue ( 1, )\nQ\nx\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n29\n\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue (\n2, )\nQ\nx\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue ( 1, )\nQ\nx\nDequeue ( 1)\nx\nQ\n\uf03d\nEnqueue (\n2, )\nQ\nx\nThe number of enqueue operations on \nQ\n1 is \n3\n2 1\n6.\n\uf02b\n\uf02b\uf03d\nOperating System"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/41/exp.webp b/frontend/public/assets/gate/cs/questions/2022/41/exp.webp
new file mode 100644
index 0000000..2d887d3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/41/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/41/q.webp b/frontend/public/assets/gate/cs/questions/2022/41/q.webp
new file mode 100644
index 0000000..fcbea37
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/41/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/42/data.json b/frontend/public/assets/gate/cs/questions/2022/42/data.json
new file mode 100644
index 0000000..d2e0b8b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/42/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "42",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "1,0,0",
+ "question_text": "Question 42\nIn the given table\nProcess P1 \nProcess P2 \nProcess P3\nWhile (true) \nWhile (true) \nWhile\n{ \n{ \n{\nwait\n3\n(\n)\nS\n; \nwait\n1\n(\n)\nS\n; \nwait\n2\n(\n)\nS\n;\nprint \u201cC\u201d \nprint \u201cB\u201d \nprint \u201cA\u201d\nSignal \n2\n(\n)\nS\n; \nSignal \n3\n(\n)\nS\n; \nSignal \n1\n(\n)\nS\n;\n} \n} \n}\nTo get the output string of \u201cBCABCABCA\u201d the initial values of \n1\n2\n,\nS S\n and \n3\nS\n are ?",
+ "answer_text": "1,0,0",
+ "explanation_text": "Sol.\nInitially if \n1\n2\n3\n1,\n0,\n0,\nS\nS\nS\n\uf03d\n\uf03d\n\uf03d\nProcess \n2\nP\n can successfully execute wait\n1\n(\n)\nS\n; while \n1\n3\nand \nP\nP\n remain stuck at wait\n3\n(\n)\nS\n; and wait\n2\n(\n)\nS\n;\nrespectively.\nAfter process \n2\nP\n prints B it executes signal\n3\n(\n)\nS\n; and gets stuck at wait\n1\n(\n)\nS\n;\nHere B gets printed in this process.\nAfter this Process \n1\nP\n can successfully execute wait\n3\n(\n)\nS\n; and then it executes print(\"C\");, after which it\nexecutes signal \n2\n(\n)\nS\n; and then gets stuck at wait\n3\n(\n)\nS\n;\nHere C gets printed in this process.\nAfter this Process \n3\nP\n can successfully execute wait\n2\n(\n)\nS\n: and then it executes print (\"A\");, after which it\nexecutes signal\n1\n(\n)\nS\n: and then gets stuck at wait\n2\n(\n)\nS\n;\nHere A gets printed in this process.\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n30\n\nAfter this Process\n2\nP\n can execute wait\n1\n(\n)\nS\n; successfully.\nThe process thus keeps repeating and the pattern printed is BCABCABCA\u2026"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/42/exp.webp b/frontend/public/assets/gate/cs/questions/2022/42/exp.webp
new file mode 100644
index 0000000..d230a01
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/42/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/42/q.webp b/frontend/public/assets/gate/cs/questions/2022/42/q.webp
new file mode 100644
index 0000000..148bb71
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/42/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/43/data.json b/frontend/public/assets/gate/cs/questions/2022/43/data.json
new file mode 100644
index 0000000..1f51ed0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/43/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "43",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 43\nConsider four processes \nP\n, \nQ\n, \nR\n and \nS\n scheduled on a CPU as per round robin algorithm with a time \nquantum of 4 units. The processes arrive in the order \nP\n, \nQ\n, \nR\n, \nS\n all at time \n0.\nt\n \uf03d\nThere is exactly one \ncontext switch from \nS\n to \nQ\n, exactly one context switch from \nR\n to \nQ\n. Exactly two context switches from \nQ\n \nto \nR\n. There is no context switch from \nS\n to \nP\n. Switching to a ready process after the termination of another \nprocess is also considered a context switch. Which one of the following is NOT possible a CPU burst time \n(in time units) of these process?\n(A) \n3,\n7,\n7,\n3\nP\nQ\nR\nS\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n \n(B) \n4,\n10,\n6,\n2\nP\nQ\nR\nS\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n(C) \n4,\n12,\n5,\n4\nP\nQ\nR\nS\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n \n(D) \n2,\n9,\n5,\n1\nP\nQ\nR\nS\n\uf03d\n\uf03d\n\uf03d\n\uf03d",
+ "answer_text": "A",
+ "explanation_text": "Sol.\nValid Required Contexts switches are 1 \u2013 S to Q, 1 \u2013 R to Q, 2 \u2013 Q to R and no S to P.\nA :\nQ\nR\nR\nS\nQ\nP\nContexts switches are 1 \u2013 P to Q, 2 \u2013 Q to R, 1 \u2013 R to S and 1 \u2013 S to Q\n0\n3\n7\n11\n14\n17\n20\nB :\nQ\nR\nR\nS\nQ\nQ\nP\nContexts switches are 1 \u2013 P to Q, 2 \u2013 Q to R, 1 \u2013 R to S, 1 S to Q and 1 \u2013 R to Q\n0\n4\n8\n12\n14\n18\n20\n22\nC :\nQ\nR\nR\nS\nQ\nQ\nP\nContexts switches are 1 \u2013 P to Q, 2 \u2013 Q to R, 1 \u2013 R to S, 1 S to Q and 1 \u2013 R to Q\n0\n4\n8\n12\n16\n20\n21\n25\nD :\nQ\nR\nR\nS\nQ\nQ\nP\nContexts switches are 1 \u2013 P to Q, 2 \u2013 Q to R, 1 \u2013 R to S, 1 S to Q and 1 \u2013 R to Q\n0\n2\n6\n10\n11\n15\n16\n17\nHence, A is the correct option."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/43/exp.webp b/frontend/public/assets/gate/cs/questions/2022/43/exp.webp
new file mode 100644
index 0000000..9876b8f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/43/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/43/q.webp b/frontend/public/assets/gate/cs/questions/2022/43/q.webp
new file mode 100644
index 0000000..1841247
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/43/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/44/data.json b/frontend/public/assets/gate/cs/questions/2022/44/data.json
new file mode 100644
index 0000000..f3d457f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/44/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "44",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "0.6\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n31\n\n \n153\n \nD\n \nB, C",
+ "question_text": "Question 44\nConsider a demand paging system with four page frames (initially empty) and LRU page replacement \npolicy. For the following page reference string 7, 2, 7, 3, 2, 5, 3, 4, 6, 7, 7, 1, 5, 6, 1 the page fault rate, \ndefined as the ratio of number of page faults to the number of memory accesses. (2 decimal) is _____",
+ "answer_text": "0.6\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n31\n\n \n153\n \nD\n \nB, C",
+ "explanation_text": "Sol.\n7,2,7,3,2,5,3,4,6,7,7,1,5,6,1\nTotal page faults \n9\n\uf03d\nTotal Access \n15\n\uf03d\nThus page fault rate \n9 /15\n0.6\n\uf03d\n\uf03d\nQ.45 \n Consider two file-systems A and B. that use contiguous allocation and linked allocation respectively A\nfile of size 100 blocks is already stored in A and also in B. Now, consider inserting a new block in the \nmiddle of the file (between 50th and 51st block), whose data is already available in the memory. Assume \nthat there are enough free blocks at the end of the file and that the file control blocks are already in \nmemory. Let the number of disk accesses required to insert a block in the middle of the file in A and B \nare n A and n E respectively, then the value of \nA\nB\nn\nn\n\uf02b\n is___.\n2 Marks NAT\nSol.\n \nFor contiguous allocation, we have to store all the blocks in a sequence, if we have to store a block in the \nmiddle, we have to first shift all the blocks after that one place right, for which we need one disk read and \none disk write for each block (2 disk accesses). Now since we are storing one block in contiguous\nallocation at \n51\nst\n \n position, the blocks (\n51\nst\n \n to 100\nth\n ) have to be moved one step right, for which 2*50 disk \naccesses are required, then one access to store the new block, thus \n100 1 101\nA\nn\n \uf03d\n\uf02b\uf03d\n.\nIn Linked allocation, we must read 50 blocks to find the middle. Then we must write the new block \nsomewhere with the next block pointing to the block after the 50\nth\n block. Then we must write the 50\nth\n \nblock to point to this new block, thus\n50 1 1\n52\nB\nn\n \uf03d\n\uf02b\uf02b\uf03d\nHence our required answer \nA\nB\nn\nn\n\uf02b\nis 153.\nQ.46 \nWhich of the following statements is False? \n \n \n \n2 Marks MCQ\n(A) The TLB performs an associative search in parallel on all its valid entries using page number of\nincoming virtual address\n(B) If the virtual address of a word given by CPU has a TLB hit, but the subsequent search for the word\nresults in cache miss, then the word will always be present in the main memory.\n(C) In a system that uses hashed page tables, if two distinct virtual address VI and V2 map to the same\nvalue while hashing, then the memory access time of these addresses will not be the same\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n32\n\n(D) The memory access time using a given inverted page table is always same for all incoming virtual\naddresses.\nSol. \nA. True\nTLB Lookups:\n1. \nSequential search of the TLB\n2. Direct mapping : assigns each virtual page to a specific slot in the TLB e.g., use upper bits of VPA\nto index TLB\n3. Set associativity: use N TLB banks to perform lookups in parallel\n4. Fully associative cache: allows looking up all TLB entries in parallel\n5. Typically\na. TLBs are small and fully associative\nb. Hardware caches use direct mapped or set-associative cache\nB. True\nA cache stores a copy of data from memory in a fast storage near the CPU. In case of TLB hit, we \ngot the physical address (in main memory). We look into cache before accessing main memory. In \ncase of a cache miss, we will definitely find the word in main memory as there was a TLB hit.\nC. True\nA hashed page table lookup may require many memory references to search the desired virtual \naddress and its corresponding frame number because there is no guarantee on the number of entries \nin the linked list.\nD. False\nWhen a memory reference takes place, this virtual address is matched by the memory-mapping unit \nand the Inverted Page table is searched for a match and the corresponding frame number is obtained. \nIf the match is found at the ith entry then the physical address of the process is sent as the real address \notherwise if no match is found then Segmentation Fault is generated. Finding a match requires \nsearching the entire table. Depending on the match, the memory access time will vary.\nQ.47\n Which of the following statements is/are TRUE with respect to deadlocks?\n(A) In a system where each resource has more than one instance, a cycle in its wait-for-graph indicates\nthe presence of a deadlock .\n(B) In the resource-allocation graph of a system, if every edge is an assignment edge, then the system is\nnot in deadlock state.\n(C) Circular wait is a necessary condition for the formation of deadlock\n(D) If the current allocation of resources to processes leads the system to unsafe state then deadlock will\nnecessarily occur.\nSol.\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n33\n\nOption A:\nA cycle exist in the system but since \n1\nP\n does not need any more resources it will finish after some\ntime and \n3\nP\n will get resource\n1\nR\n this even in the presence of cycle the deadlock does not exist here\nR\n1\nP\n1\nP\n2\nP\n3\nR\n2\nOption B:\nWhen every edge is the assignment edge, that is, no process needs any more resources than the ones \nthat are already allocated, thus deadlock doesn't exist here.\nOption C:\nCircular wait is a necessary condition for Deadlock but it is not sufficient. There are following 4 \nnecessary conditions for the occurrence of deadlock\n1. \nMutual exclusion\n2. \nHold and wait\n3. \nNo preemption\n4. \nCircular wait\nOption D:\nEven if the allocation results in an unsafe state, some processes still may release the resources that \nare allocated to them for a while which may lead to elimination of deadlock from the system.\nDigital Logic"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/44/exp.webp b/frontend/public/assets/gate/cs/questions/2022/44/exp.webp
new file mode 100644
index 0000000..8e6b843
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/44/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/44/q.webp b/frontend/public/assets/gate/cs/questions/2022/44/q.webp
new file mode 100644
index 0000000..05b39c7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/44/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/48/data.json b/frontend/public/assets/gate/cs/questions/2022/48/data.json
new file mode 100644
index 0000000..b8ce5d8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/48/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "48",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 48\nIn a digital control system as shown in figure, a 16 bit code word is used to retrieve the value of \nX\n . The\nX\n will have the value of either of \nR\n or \nS\n depending on value of bit \nM\n (\n M\n is mode bit). Determine \ncorrect digital units \n,\nP Q\n and \nT\n . \nR\n denotes a memory containing 1024 words and \nS\n denotes a register \nfile of size 32 registers.\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n34\n\n\n(A) \n10\nis 10: 2\ndecoder, \nP\n \n5\nis 5: 2 decoder, \nQ\n \nis 2:1 Multiplexer\nT\n \n(B) \n10\nis 10: 2 decoder, \nP\n \n5\nis 5: 2 decoder, \nQ\n \nis 2:1 encoder\nT\n \n(C) \nis 10: 1 Multiplexer, \nP\n \nis 5: 1 Multiplexer, \nQ\n \nis 2:1 Multiplexer\nT\n \n(D) \nis 1:10 de - multiplexer\nP\n \nis 1:5 de - multiplexer\nQ\n \nis 2:1 Multiplexer\nT\n \nAns. \nA",
+ "answer_text": "",
+ "explanation_text": "Sol. \nBased on the Address provided to P, one of the words of the memory unit S has to be selected. this \nfunction is performed by a Decoder r To be able to address 1024 words, we need 10 bits , and to select \none out of \n10\n2\n addresses , we need 1G:\n10\n2\n Decoder which is unit P.\nSimilarly to decoder Address R we need 5:\n5\n2\n Decoder.\nNow one of the two inputs has to be selected to be loaded into X, selecting one input among many to \nplace in the output. This function is performed by a Multiplexer here we need a 2x1 MUX. Hence A is \nthe correct Answer."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/48/exp.webp b/frontend/public/assets/gate/cs/questions/2022/48/exp.webp
new file mode 100644
index 0000000..36840a8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/48/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/48/q.webp b/frontend/public/assets/gate/cs/questions/2022/48/q.webp
new file mode 100644
index 0000000..2c25985
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/48/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/49/data.json b/frontend/public/assets/gate/cs/questions/2022/49/data.json
new file mode 100644
index 0000000..04638e9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/49/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "49",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 49\nWhich of the following give overflow. There are 4-bit register \n1\nR\n and \n2\nR\n and 2\u2019s compliment number \nsystem is used and Arithmetic addition \n1\n2.\nR\nR\n\uf02b\n(A) \n1001\n1111\n(B) \n1100\n1010\n(C) \n1011\n1110\n(D) \n0011\n0100\nAnswer: B\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n35\n",
+ "answer_text": "",
+ "explanation_text": "Sol.\nWe know that the range of 2\"s complement numbers representable with 4 bits are -8 to +7.\nA. \nR1 = -1*2\n^\n3 + 0*2\n^\n2 + 0*2\n^\n1 + 1*2\n^\n0 = -7\nR2 = -1*2\n^\n3 +1*2\n^\n2 +1*2\n^\n1 + 1*2\n^\n0 = -1\nR1 + R2 = -8 (no overflow)\nB \nR1 = -1*2\n^\n3 + 1*2\n^\n2 + 0*2\n^\n1 + 0*2\n^\n0 = -4\nR2 = -1*2\n^\n3 + 0*2\n^\n2 + 1*2\n^\n1 + 0*2\n^\n0 = -6\nR1 + R2 = -10 (overflow)\nC. \nR1 = -1*2\n^\n3 + 0*2\n^\n2 + 1*2\n^\n1 + 1*2\n^\n0 = -5\nR2 = -1*2\n^\n3 + 1*2\n^\n2 + 1*2\nA\n1 + 0*2\n^\n0 = -2\nR1 + R2 = -7 ( no overflow)\nD \nR1 = 0*2\n^\n3 + 0*2\n^\n2 + 1*2\n^\n1 + 1*2\n^\n0 = 3\nR2 = 0*2\n^\n3 + 1*2\n^\n2 + 0*2\n^\n1 + 0*2\n^\n0 = 4\nR1 + R2 = 7 (no overflow)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/49/exp.webp b/frontend/public/assets/gate/cs/questions/2022/49/exp.webp
new file mode 100644
index 0000000..34839ec
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/49/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/49/q.webp b/frontend/public/assets/gate/cs/questions/2022/49/q.webp
new file mode 100644
index 0000000..1d382d7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/49/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/50/data.json b/frontend/public/assets/gate/cs/questions/2022/50/data.json
new file mode 100644
index 0000000..58ee0c7
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/50/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "50",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "C",
+ "question_text": "Question 50\nFloating point number A, B and C stored in registered \n&\nA\nB\nC\nR R\nR\n as per IEEE -754, The 32 bit content\nstored in these registered in hexadecimal form\n0\n1400000\nA\nR\nXC\n\uf03d\n \n0\n42100000\nB\nR\nX\n\uf03d\n \n0\n41400000\nC\nR\nX\n\uf03d\nWhich is false\n(A) \n0\nA\nC\n\uf02b\n\uf03d\n(B) \n3\nB\nC\n\uf03d\n(C) \nC\nA\nB\n\uf03d\n\uf02b\n(D) \n(\n)\n0\nB\nC\n\uf02d\n\uf03e",
+ "answer_text": "C",
+ "explanation_text": "Sol. \n1100\n0001 0100\n0000\nA\n \uf03d\nBiased Exponent\n130, Exponent\n130 127\n3\n\uf03d\n\uf03d\n\uf02d\n\uf03d\n3\nDecimal\n1.1 2\n1100\n12\n\uf03d\uf02d\n\uf0b4\n\uf03d\uf02d\n\uf03d\uf02d\n0100\n0010\n0001\n0000\nB\n \uf03d\nBiased Exponent\n132, Exponent\n132 127\n5\n\uf03d\n\uf03d\n\uf02d\n\uf03d\n5\nDecimal\n1.001 2\n100100\n36\n\uf03d\uf02b\n\uf0b4\n\uf03d\n\uf03d\n0100\n0001 0100\n0000\nC\n \uf03d\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n36\n\nBiased Exponent\n128\n2\n130, Exponent\n130 122\n3\n\uf03d\n\uf02b\n\uf03d\n\uf03d\n\uf02d\n\uf03d\n3\nDecimal\n1.1 2\n1100\n12\n\uf03d\uf02b\n\uf0b4\n\uf03d\n\uf03d\uf02b\n12\nA\n \uf03d\uf02d\n36\nB\n \uf03d\n12\nC\n \uf03d\uf02b\nDBMS"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/50/exp.webp b/frontend/public/assets/gate/cs/questions/2022/50/exp.webp
new file mode 100644
index 0000000..1c5e35b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/50/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/50/q.webp b/frontend/public/assets/gate/cs/questions/2022/50/q.webp
new file mode 100644
index 0000000..1112557
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/50/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/51/data.json b/frontend/public/assets/gate/cs/questions/2022/51/data.json
new file mode 100644
index 0000000..dd39e6d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/51/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "51",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 51\nIn relational data model which is true.\n(A) A relation with only two attribute is always BCNF\n(B) BCNF decomposition preserve functional dependencies\n(C) Every relation has at least one non prime attribute\n(D) If all attributes of a relation are prince attributes, then relation is in BCNF.",
+ "answer_text": "A",
+ "explanation_text": "Sol. \nA relation with two attributes is always in BCNF."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/51/exp.webp b/frontend/public/assets/gate/cs/questions/2022/51/exp.webp
new file mode 100644
index 0000000..2d7f4e7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/51/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/51/q.webp b/frontend/public/assets/gate/cs/questions/2022/51/q.webp
new file mode 100644
index 0000000..4ea6e71
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/51/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/52/data.json b/frontend/public/assets/gate/cs/questions/2022/52/data.json
new file mode 100644
index 0000000..2017a78
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/52/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "52",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "8",
+ "question_text": "Question 52\nRelation R\n \n(A, B, C, D, E) has 3 functional dependency: \n \n \n,\n,\nAB\nC BC\nD C\nE\n\uf0ae\n\uf0ae\n\uf0ae\nFind number of super keys?",
+ "answer_text": "8",
+ "explanation_text": "Sol. \nR (A, B, C, D, E)\n{\nAB\nC\n\uf0ae\nBC\nD\n\uf0ae\nC\nE\n\uf0ae\n}\nCandidate key = AB\nNumber of super keys\n5 2\n3\n2\n2\n8\n\uf02d\n\uf03d\n\uf03d\n\uf03d\n super keys"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/52/exp.webp b/frontend/public/assets/gate/cs/questions/2022/52/exp.webp
new file mode 100644
index 0000000..6f12123
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/52/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/52/q.webp b/frontend/public/assets/gate/cs/questions/2022/52/q.webp
new file mode 100644
index 0000000..b476145
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/52/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/53/data.json b/frontend/public/assets/gate/cs/questions/2022/53/data.json
new file mode 100644
index 0000000..caa762f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/53/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "53",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "2",
+ "question_text": "Question 53\nConsider relational database consisting of following for relations and respective schema with tuples.\nStudent (sno, sname, dno)\nDepartment (dno, dname)\nCourse (cno, cname, dno)\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n37\n\nRegister (sno, dno)\nStudent\nsno \nsname \ndno\nS1 \nJ \nD01\nS2 \nR \nD01\nS3 \nJ \nD02\nS4 \nJ \nD01\nS5 \nM \nD03\nDepartment\ndno \ndname\nD01 \nCSE\nD02 \nEEE\nCourse\ncno \ncname \ndno\n11\nC\n \nDS \nD01\n12\nC\n \nDS \nD01\n21\nC\n \nDE \nD02\n22\nC\n \nPT \nD02\n23\nC\n \nCV \nD03\nRegister\nsno \ncno\nS01 \n17\nC\nS01 \n12\nC\nS02 \n11\nC\nS03 \n21\nC\nS03 \n22\nC\nS03 \n23\nC\nS04 \n11\nC\nS04 \n12\nC\nS05 \n11\nC\nS05 \n21\nC\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n38\n\nSelect * from student S where not exist (select cno from course where dno = \u201cD01\u201d except select cno, \nfrom register where sno = S.sno).",
+ "answer_text": "2",
+ "explanation_text": "Sol. \nSelect * from student S where not exist\n((Select cno from course where dno = D01 except))\n(Select cno from register where sno = S.sno)\nThe above query is co-related sub query so we need to execute inner query for every row of outer table.\nHence it gives 2 rows in output\nS1 \nJ \nD01\nS4 \nM \nD03"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/53/exp.webp b/frontend/public/assets/gate/cs/questions/2022/53/exp.webp
new file mode 100644
index 0000000..9b909b2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/53/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/53/q.webp b/frontend/public/assets/gate/cs/questions/2022/53/q.webp
new file mode 100644
index 0000000..2a9ef04
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/53/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/54/data.json b/frontend/public/assets/gate/cs/questions/2022/54/data.json
new file mode 100644
index 0000000..402056f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/54/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "54",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "D",
+ "question_text": "Question 54\nLet \n( )\ni\nR z\n and \n( )\ni\nW z\n denote read and write operations on data element \nz\n by a transaction \n1\n,\nT\n consider\nschedule \nS\n with four transaction\n4\n2\n3\n1\n1\n2\n3\n4\n:\n( )\n( )\n( )\n( )\n( )\n( )\n( )\n( )\nS R x R x R x R y W y W x W y R\ny\n(A) \n4\n1\n3\n2\nT\nT\nT\nT\n\uf0ae\n\uf0ae\n\uf0ae\n \n(B) \n1\n4\n3\n2\nT\nT\nT\nT\n\uf0ae\n\uf0ae\n\uf0ae\n(C) \n3\n1\n4\n2\nT\nT\nT\nT\n\uf0ae\n\uf0ae\n\uf0ae\n \n(D) \n1\n3\n4\n2\nT\nT\nT\nT\n\uf0ae\n\uf0ae\n\uf0ae",
+ "answer_text": "D",
+ "explanation_text": "Sol. \n4\n2\n3\n1\n1\n2\n3\n4\n:\n( )\n( )\n( )\n( )\n( )\n( )\n( )\n( )\nS R x R x R x R y W y W x W y R y\n1\nT\n \n2\nT\n \n3\nT\n \n4\nT\n( )\nR x\n( )\nR x\n( )\nR x\n( )\nR x\n( )\nW y\n( )\nW x\n( )\nW y\n( )\nR y\n\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n39\n\nApply topological sort then the sequence is\n1 3\n4\n2\nTT T T"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/54/exp.webp b/frontend/public/assets/gate/cs/questions/2022/54/exp.webp
new file mode 100644
index 0000000..a8e98f9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/54/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/54/q.webp b/frontend/public/assets/gate/cs/questions/2022/54/q.webp
new file mode 100644
index 0000000..5ba41c9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/54/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/55/data.json b/frontend/public/assets/gate/cs/questions/2022/55/data.json
new file mode 100644
index 0000000..373c6b0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/55/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "55",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A, C",
+ "question_text": "Question 55\nEmployee (eid, Name)\nBrand (bid, bName)\nOwn (eid, bid)\nReturn the set of eids who own all the brands.\n(A) \n,\n(\n(Own) /\n(Brand))\neid\neid bid\nbid\n\uf070\n\uf070\n\uf070\n(B) \n,\n(\n(Own) /\n(Own))\neid\neid bid\nbid\n\uf070\n\uf070\n\uf070\n(C) \n,\n(Own)\n/\n(Own)\n(Brand)\n(Own))\neid\neid\neid\nbid\neid bid\n\uf070\n\uf02d\uf070\n\uf070\n\uf0b4\uf070\n\uf02d\uf070\n(D) \n(\n(Own)\n(Own)) /\n(Brand)\neid\neid\nbid\nbid\n\uf070\n\uf070\n\uf0b4\uf070\n\uf070",
+ "answer_text": "A, C",
+ "explanation_text": "Sol. \nEmployee (eid, ename) Brand (bid, bname) Own (eid, eid)\nTo find set of eids who own all the brand we need to divide the table own by table brand like.\n(A) \n,\n(\n(Own) /\n(Brand))\neid\neid bid\nbid\n\uf070\n\uf070\n\uf070\n and the division operation can be represented using \n( ,\n)\n\uf0b4\uf02d\noperations like\n(C) \n,\n(Own)\n/\n(Own)\n(Brand)\n(Own))\neid\neid\neid\nbid\neid bid\n\uf070\n\uf02d\uf070\n\uf070\n\uf0b4\uf070\n\uf02d\uf070"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/55/exp.webp b/frontend/public/assets/gate/cs/questions/2022/55/exp.webp
new file mode 100644
index 0000000..553e183
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/55/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/55/q.webp b/frontend/public/assets/gate/cs/questions/2022/55/q.webp
new file mode 100644
index 0000000..a1b3dc5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/55/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/56/data.json b/frontend/public/assets/gate/cs/questions/2022/56/data.json
new file mode 100644
index 0000000..2589f50
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/56/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "56",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 56\nThe ___________ is too high for it to be considered _________ .\n(A) Fare/Fair \n(B) Fair/ Fare \n(C) Faer/ Fair \n(D) Fare/fare",
+ "answer_text": "A",
+ "explanation_text": "Sol. \nFare : the amount of money you pay to travel by bus, train, taxi etc.\nFair : appropriate and acceptable in a particular situation the fare is high for it to be considered fair.\nHere it is clearly seen that we are talking about amount, so first filler should be \u201cfare\u201d and from this option \nB and C are eliminated and second filler is given the sense of right, so it should be \u201cfair\u201d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/56/exp.webp b/frontend/public/assets/gate/cs/questions/2022/56/exp.webp
new file mode 100644
index 0000000..363d1ce
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/56/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/56/q.webp b/frontend/public/assets/gate/cs/questions/2022/56/q.webp
new file mode 100644
index 0000000..c923745
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/56/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/57/data.json b/frontend/public/assets/gate/cs/questions/2022/57/data.json
new file mode 100644
index 0000000..adf051d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/57/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "57",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 57\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n40\n\nA palindrome is a word that reads the same forwards and backwards. In a game of words, a player has the \nfollowing two plates painters with letters\nA\nD\nFrom the additional plates gives in the options, which one of the combinations of additional plates would \nallow the players to construct in five letter palindrome. The players should use all five plates exactly once. \nThe plates can be rotated in their plane.\n(A) \n \n \n(B)\n(C) \n \n \n(D)",
+ "answer_text": "A",
+ "explanation_text": "Sol. \nAs we know, palindrome is word that mads the same forwards and backwards\nRADAR is the only word. We have to rotate \nA\n and \nR\n \n0\n180\n anticlockwise/clockwise."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/57/exp.webp b/frontend/public/assets/gate/cs/questions/2022/57/exp.webp
new file mode 100644
index 0000000..813503d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/57/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/57/q.webp b/frontend/public/assets/gate/cs/questions/2022/57/q.webp
new file mode 100644
index 0000000..952336c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/57/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/58/data.json b/frontend/public/assets/gate/cs/questions/2022/58/data.json
new file mode 100644
index 0000000..66640a0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/58/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "58",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "C",
+ "question_text": "Question 58\nLet \nr\n be a root of the expression \n2\n2\n6\n0\nx\nx\n\uf02b\n\uf02b\n\uf03d\nThen the value of the expression \n(\n2)(\n3)(\n4)(\n5)\nr\nr\nr\nr\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n is\n(A) \u2013 51 \n(B) 126 \n(C) \u2013 126 \n(D) 51",
+ "answer_text": "C",
+ "explanation_text": "Sol. \n \n \n2\n2\n6\n0\nx\nx\n\uf02b\n\uf02b\n\uf03d\nIf \nr\n is root, then\n2\n2\n6\n0\nr\nr\n\uf02b\n\uf02b\n\uf03d\n2\n2\n6\nr\nr\n\uf02b\n\uf03d\uf02d\n \n \n \n \n \n \n \n\u2026 (i)\nNow, \n(\n2)(\n3)(\n4)(\n5)\nr\nr\nr\nr\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf0de\n \n{(\n2)(\n4)}{(\n3)(\n5)}\nr\nr\nr\nr\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf0de\n \n2\n2\n(\n6\n8)(\n8\n15)\nr\nr\nr\nr\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf0de\n \n2\n2\n(\n2\n4\n8)(\n2\n6\n15)\nr\nr\nr\nr\nr\nr\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\nFrom (i), \n2\n2\n6\nr\nr\n\uf02b\n\uf03d\uf02d\n\uf0de\n \n(4\n2)(6\n9)\nr\nr\n\uf02b\n\uf02b\n\uf0de\n \n2(2\n1)3(2\n3)\nr\nr\n\uf02b\n\uf02b\n\uf0de\n \n6(2\n1)(2\n3)\nr\nr\n\uf02b\n\uf02b\n\uf0de\n \n2\n6(4\n8\n3)\nr\nr\n\uf02b\n\uf02b\nFrom equation (i),\n2\n2\n6\nr\nr\n\uf02b\n\uf03d\uf02d\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n41\n\n2\n4(\n2 )\n24\nr\nr\n\uf02b\n\uf03d\uf02d\n\uf0de\n \n6( 24\n3)\n\uf02d\n\uf02b\n\uf0de\n \n6( 21)\n\uf02d\n\uf0de\n \n126\n\uf02d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/58/exp.webp b/frontend/public/assets/gate/cs/questions/2022/58/exp.webp
new file mode 100644
index 0000000..62ac1f1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/58/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/58/q.webp b/frontend/public/assets/gate/cs/questions/2022/58/q.webp
new file mode 100644
index 0000000..e58fc95
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/58/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/59/data.json b/frontend/public/assets/gate/cs/questions/2022/59/data.json
new file mode 100644
index 0000000..9ff6475
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/59/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "59",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 59\nA function \n( )\ny x\n is defined in the interval \n[0,1]\n on the \nx\n - axis as\n\uf0ec\n\uf0a3\n\uf0a3\n\uf0ef\n\uf0ef\uf0ef\n\uf03d\n\uf0a3\n\uf0a3\n\uf0ed\n\uf0ef\n\uf0ef\n\uf0a3\n\uf0a3\n\uf0ef\uf0ee\n1\n2 if 0\n3\n1\n3\n( )\n3 if 3\n4\n3\n1 if \n1\n4\nx\n\n\ny x\nx\nx\nWhich one of the following is the area under the curve for the interval [0, 1] on the \nx\n \u2013axis ?\n(A) \n13\n6\n \n \n(B) \n6\n5\n \n \n(C) \n6\n13\n \n \n(D) \n5\n6",
+ "answer_text": "A",
+ "explanation_text": "Sol. \nGraph of \n( )\ny x vs x\ny-axis\n3\n2\n1\nx\n-axis\n0\n1\n3\n4\n1\n3\nArea of rectangle \nl\nb\n\uf03d\uf0b4\nArea enclosed under the curve \n1\n3\n1\n3\n2\n0\n3\n1 1\n3\n4\n3\n4\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf03d\n\uf02d\n\uf02b\n\uf02d\n\uf02b\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\uf0de\n \n2\n5\n1\n3\n4\n4\n\uf02b\n\uf02b\n\uf0de\n \n \n13\n6\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/59/exp.webp b/frontend/public/assets/gate/cs/questions/2022/59/exp.webp
new file mode 100644
index 0000000..aba4f6b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/59/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/59/q.webp b/frontend/public/assets/gate/cs/questions/2022/59/q.webp
new file mode 100644
index 0000000..d5718b5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/59/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/60/data.json b/frontend/public/assets/gate/cs/questions/2022/60/data.json
new file mode 100644
index 0000000..7af6103
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/60/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "60",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 60\nGiven below are four statements\nStatement 1 : All students are inquisitive\nStatement 2 : Some students are inquisitive\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n42\n\nStatement 3 : No students are inquisitive\nStatement 4 : Some students are not inquisitive\nFor the given four statements, find the statements what cannot be true, simultaneously, assuming that there \nis at least one student in the class\n(A) Statement 1 and Statement 3 \n(B) Statement 3 and Statement 4\n(C) Statement 2 and Statement 4 \n(D) Statement 1 and Statement 2",
+ "answer_text": "A",
+ "explanation_text": "Sol.\nAs in the question, it is asked that statements that can not be true simultaneously\nOption A\n\nOption B\n\nStudents\nInquisitive\nStudents\nInquisitive\nOption C\n\nStatement-4\nStatement-2\nStudents\nStudents\nInquisitive\nOption D\nInquisitive\nAfter making the venn diagram it is clearly visible that statement 1 and statement 3 cannot be possible \nsimultaneously only one can possibly be happen at a time.\nStatement-2\nStatement-1"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/60/exp.webp b/frontend/public/assets/gate/cs/questions/2022/60/exp.webp
new file mode 100644
index 0000000..ec619d7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/60/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/60/q.webp b/frontend/public/assets/gate/cs/questions/2022/60/q.webp
new file mode 100644
index 0000000..bf8b024
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/60/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/61/data.json b/frontend/public/assets/gate/cs/questions/2022/61/data.json
new file mode 100644
index 0000000..6fbf5ba
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/61/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "61",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "A",
+ "question_text": "Question 61\nA box contains five balls of same size and shape. Three of them are green coloured balls and two of them \nare orange coloured balls. Balls are drawn from the box one at a time. If a green ball is drawn it is not \nreplaced. If an orange ball is drawn it is replaced with another orange ball. First ball is drawn. What is the \nprobability of getting an orange ball in the next drawn ?\n25\n \n \n(D) \n1\n(A) \n23\n50\n \n \n(B) \n19\n50\n \n \n(C) \n8\n2",
+ "answer_text": "A",
+ "explanation_text": "Sol.\nIn this we have two different cases\nCase 1: 1 green and 1 orange ball\n3\n2\n6\n( )\n5\n4\n20\nP E\n \uf03d\n\uf0b4\n\uf03d\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n43\n\nAs we can\u2019t replace ball after getting green ball, so when we are drawing orange ball at that time we are \nleft with only 4 balls in a box\nCase 2: 1 orange and 1 orange ball\n2\n2\n4\n( )\n5\n5\n25\nP E\n \uf03d\n\uf0b4\n\uf03d\nAs with orange ball we can replace, so when we are drawing second orange ball at that time we have 5 \nballs in of box\nP (getting an orange ball in the next drawn) = P (case 1 + case 2)\n6\n4\n23\n20\n25\n50\n\uf03d\n\uf02b\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/61/exp.webp b/frontend/public/assets/gate/cs/questions/2022/61/exp.webp
new file mode 100644
index 0000000..e7d3306
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/61/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/61/q.webp b/frontend/public/assets/gate/cs/questions/2022/61/q.webp
new file mode 100644
index 0000000..34ec8eb
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/61/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/62/data.json b/frontend/public/assets/gate/cs/questions/2022/62/data.json
new file mode 100644
index 0000000..9c2c0f9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/62/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "62",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "D",
+ "question_text": "Question 62\nSome people believe that \u201cwhat gets measured, improves\u201d. Some other believe that \u201cwhat gets measured, \ngets gamed\u201d. One possible reason for the difference in the beliefs is the work culture in organization. In \norganizations with good work culture, metrics help improve outcomes. However the same metrics are \ncounterproductive in organizations with poor work culture.\nWhich one of the following is the correct logical inference based on the information in the above passage?\n(A)\n \nMetrics are useful in organization with poor work culture \n(B)\n \nMetrics are always counterproductive in organizations with good work culture \n(C)\n \nMetrics are never useful in organization with good work culture \n(D)\n \nMetrics are useful in organizations with good work culture",
+ "answer_text": "D",
+ "explanation_text": "Sol. \n(A) Eliminated because Metrics are counterproductive in organization with poor work culture\n(B) Eliminated because Metrics are counterproductive in organization with poor work culture not good\nwork culture\n(C) Eliminated because of the term \u201cnever\u201d as Metrics are useful.\n(D) Correct answer as Metrics are useful in organization with good work culture."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/62/exp.webp b/frontend/public/assets/gate/cs/questions/2022/62/exp.webp
new file mode 100644
index 0000000..d4f30a1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/62/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/62/q.webp b/frontend/public/assets/gate/cs/questions/2022/62/q.webp
new file mode 100644
index 0000000..637c913
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/62/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/63/data.json b/frontend/public/assets/gate/cs/questions/2022/63/data.json
new file mode 100644
index 0000000..eb2878f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/63/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "63",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "C\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n44",
+ "question_text": "Question 63\nThe corners and the mid point of a triangle are name using distinct letters \n,\n, , ,\nP Q R S T\n and U but not \nnecessarily in the same order. Consider the following statements\n\u25cf \nThe line joining \nP\n and \nR\n is parallel to the line joining \nQ\n and \nS\n\u25cf \nP\n is placed on the side opposite to the corner \nT\n\u25cf \nS and U cannot be placed in the same side\nWhich one of the following statements is correct based on the above information?\n(A) P cannot be placed at a corner \n(B) U cannot be placed at a mid point\n(C) S cannot be placed at a corner \n(D) R cannot be placed at a corner",
+ "answer_text": "C\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n44",
+ "explanation_text": "Sol.\nR\nS\nU\nP\nQ\nT\n\nIt satisfies all the given points.\n||\nPR QS\nP is placed on the side opposite to the corner T\nS and U cannot be placed in the same side"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/63/exp.webp b/frontend/public/assets/gate/cs/questions/2022/63/exp.webp
new file mode 100644
index 0000000..f56dbd4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/63/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/63/q.webp b/frontend/public/assets/gate/cs/questions/2022/63/q.webp
new file mode 100644
index 0000000..fade956
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/63/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/64/data.json b/frontend/public/assets/gate/cs/questions/2022/64/data.json
new file mode 100644
index 0000000..fc3d17b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/64/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "64",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B",
+ "question_text": "Question 64\nA plot of land must be divided between four families. They instant their individual plots to be similar in \nshape, not necessarily in area. The land has equally spaced placed marked as dots on the below figure. \nTwo ropes \n1\nR\n and \n2\nR\n are already present and cannot be moved.\nWhat is the least number of additional straight ropes needed to needs to divided plot ? A straight rope can \npass through three poles that are aligned in a straight line\nR\n2\nR\n1\n(A) 2 \n(B) 3 \n(C) 4 \n(D) 5",
+ "answer_text": "B",
+ "explanation_text": "Sol."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/64/exp.webp b/frontend/public/assets/gate/cs/questions/2022/64/exp.webp
new file mode 100644
index 0000000..5a0e199
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/64/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/64/q.webp b/frontend/public/assets/gate/cs/questions/2022/64/q.webp
new file mode 100644
index 0000000..08dc4bc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/64/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/65/data.json b/frontend/public/assets/gate/cs/questions/2022/65/data.json
new file mode 100644
index 0000000..de700be
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/65/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "65",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B",
+ "question_text": "Question 65\nIn a currently conducted National Entrance Test, Boys constituted 65% of those who appeared for the test. \nGirls constituted the remaining candidates and they accounted for 60% of the qualified candidates. Which \none of the following is the correct logical inference based on the information provided in the above passage \n?\n(A) Equal number of boys and girls appeared for the test\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n45\n\n(B) The number of boys who qualified the test is less than the number of girls who qualified.\n(C) The number of boys who appeared for the test is less than the number of girls who appeared.\n(D) Equal number of boys and girls qualified.",
+ "answer_text": "B",
+ "explanation_text": "Sol.\n100% (Assumed total student)\nBoys (65%)\nGirls (35%)\n3\n60%\n5\n\uf03d\nPassed (60%)\n3\n35\n21\n5\n\uf0b4\n\uf03d\n7\n\uf0b4\n3\n21 ( )\ng\n7\n\uf0b4\n5\n35 ( + )\ng B\n21 Passed Girls\n\n14 Passed Boys (35 \u2013 21 = 14)\n\n\uf076\uf076\uf076\uf076\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/65/exp.webp b/frontend/public/assets/gate/cs/questions/2022/65/exp.webp
new file mode 100644
index 0000000..5268461
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/65/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/65/q.webp b/frontend/public/assets/gate/cs/questions/2022/65/q.webp
new file mode 100644
index 0000000..81f92c9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/65/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/7/data.json b/frontend/public/assets/gate/cs/questions/2022/7/data.json
new file mode 100644
index 0000000..df3cbd2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2022/7/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "7",
+ "stream": "computer-science-information-technology",
+ "packet": "2022",
+ "year": "2022",
+ "type": "MCQ",
+ "key": "B,C,D\n \n80\n \n5",
+ "question_text": "Question 7\nWhich of the following statements is TRUE?\n(A) Symbol table is accessed only during the lexical analysis.\n(B) LR (1) parsing is sufficient for DCFL.\n(C) The LALR (1) parser for a grammar G cannot have R/R conflict if the LR (1) parser for G does not\nhave R/R conflict\n(D) Data flow analysis is necessary for run time memory management.",
+ "answer_text": "B,C,D\n \n80\n \n5",
+ "explanation_text": "Sol.\nFrom given statements\nStatements B, C, and D are true. \nQuestion 8\nConsider the following grammar along with translation rules:\n1\n \n#\nS\nS\nT\n\uf0ae\n \n1\n{S.val\n.val*T.val}\nS\n\uf03d\nS\nT\n\uf0ae\n \n \n{S.val\nT.val}\n\uf03d\n, %\nT\nT\nR\n\uf02b\n \n1\n(T.val\nT val R.val)\n\uf03d\n\uf0b8\nT\nR\n\uf0ae\n \n \n{T.val\nR.val}\n\uf03d\nR\nid\n\uf0ae\n \n \n{R.val\nid.val}\n\uf03d\nUsing translation rules, the computed value of the S.val for the expression\n20#10%5#8%2%2\n is ______.\nSol.\nAnnotated parse tree\n\nGATE 2022 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n5\n\nS\n.val = 80\nS\n1\n.val = 40\n#\nT\n.val = 2\nS\n1\n.val = 20\n#\nT\n.val = 2\nT\n1\n.val = 4\n%\nR\n.val = 2\nT\n1\n.val = 10 %\n R\n.val = 5\nT\n1\n.val = 8 %\n R\n.val = 2\nid\n.val = 2\nT\n.val = 20\nR\n.val = 20\nR\n.val = 10\nid\n.val = 5\nR\n.val = 8\nid\n.val = 2\n2\nid\n.val = 20\nid\n.val = 10\n5\nid\n.val = 8\n2\n\uf05c\n \n.val\n80\nS\n\uf03d\n \nQuestion 9\n20\n10\n8\nConsider the augmented grammar with \n{ , ,(,),\n}\nid\n\uf02b\uf02a\nas the set of terminals.\n'\n.\nS\nS\n\uf0ae\n|\nS\nS\nR R\n\uf0ae\n\uf02b\n*\n|\nR\nR P P\n\uf0ae\n( )|\nP\nS\nid\n\uf0ae\nIf \n0\nI\n is the set of two \n(0)\nLR\nitems \n\uf05b\n\uf05d\uf05b\n\uf05d\n\uf07b\n\uf07d\n'\n. ,\n.\n,\nS\nS\nS\nS\nR\n\uf0ae\n\uf0ae\n\uf02b\nthen goto \n\uf028\n\uf029\n0\nClosure( ,),\nI\n\uf02b\ncontains\nexactly _____ items.\nSol.\n1\nI\n0\nI\nS\nS\nR\n\uf0ae\n\uf02b\uf0d7\nR\nRP\n\uf0ae\uf0d7\nR\nP\n\uf0ae\uf0d7\n\uf02b\nS\nS\n\uf0ae\n\uf0d7\n( )\nP\nS\n\uf0ae\uf0d7\nS\nS\nR\n\uf0ae\n\uf0d7\uf02b\n.\nP\nid\n\uf0ae\n\n5 item\n\uf05c\nComputer Organization and Architecture"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2022/7/exp.webp b/frontend/public/assets/gate/cs/questions/2022/7/exp.webp
new file mode 100644
index 0000000..65821a3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/7/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2022/7/q.webp b/frontend/public/assets/gate/cs/questions/2022/7/q.webp
new file mode 100644
index 0000000..d77c8f1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2022/7/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/1/data.json b/frontend/public/assets/gate/cs/questions/2023/1/data.json
new file mode 100644
index 0000000..877534f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/1/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "1",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "(C)\n \nSol.\n \n:\n \nMethod 1 \n:\n \n \nThe given DFA generate strings like: \n \n{1,10,110,100,1011,1000....}\n\uf053\uf03d\n*\n(0 11)\n\uf02b\nSo, start with 1 to reach final state from where wave two choices os\n*\n1(0 11)\n\uf02b\n.\nHence R.E. is\nChecking options: \n \n(a) \nDosen\u2019t generate 10 \n \n(b) \nDosen\u2019t generate any os it starts with 0. \n \n(d) Dosen\u2019t generate 10. \n \nHence, the correct option is (C). \n \n:\n \nMethod 2 \n:\n \n \nGiven DFA shown below\n0\n1\n1\nS\nP\nQ\n1\nr\n0\n0\n0, 1\n\nSince state \nr\n is the dead state. So it can be removed.\n0\n1\n1\nS\nP\nQ\n\n1\nRequired Regular Expression\n1(0 11)*\n\uf03d\n\uf02b",
+ "question_text": "Question 1 \n \nConsider the following statements regarding the front-end and back-end of a compiler. S1: The front-end \nincludes phases that are independent of the target hardware. \n \nS2: The back-end includes phases that are specific to the target hardware. \n \nS3: The back-end includes phases that are specific to the programming language used in the source code. \n \nIdentify the CORRECT option \n \n \n[Complier Design, Lexical Analysis] \n \n(A) Only S1 is TRUE. \n(B) Only S1 and S2 are TRUE \n \n(C) S1, S2, and S3 are all TRUE \n(D) Only S1 and S3 are TRUE \nAns.\n \n(B)\n \nSol.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n8\n\nLexical Analysis\nFront end\n(High level programming\nSyntax Analysis\nlanguage)\nSemmantic Analysis\nIntermediate Code Generations\nCode Optimization\nBack end\n(Hardware)\nCode Generation\nS1 : The front end or analysis phase consists of lexical, syntax and semantic analysis. \nIt takes source language and produces intermediate code representation. It is independent of target \nhardware. So, S1 is true. \nS2 : The bock-end or synthesis phase consists of code optimization and target code generation phases \nwhich takes intermediate code and generates target code as output. It is dependent on target hardware. S2 \nis true. \nS3 : Back-end phase is independent of source program as its task is to convert the intermediate code to \ntarget code. S3 is false. \n \nHence, the correct option is (B). \nQuestion 2 \n \nWhich one of the following sequences when stored in an array at locations A[1],...,A[10] forms a max-\nheap ? \n \n \n[Data Structure, Tree] \n \n(A) 23, 17, 10, 6, 13, 14, 1, 5, 7, 12 \n(B) 23, 17, 14, 7, 13, 10, 1, 5, 6, 12 \n \n(C) 23, 17, 14, 6, 13, 10, 1, 5, 7, 15 \n(D) 23, 14, 17, 1, 10, 13, 16, 12, 7, 5 \nAns.\n \n(B)\n \nSol.\n \nHere, we have to check all options for finding which one satisfies property of max-heap. i.e. \n \n(i) \nHeap is a complete binary Tree \n \n(ii) Parent element is always greater than child element value. \n \nUpon checking only\n23\n17\n14\n7\n13\n10\n1\n5\n6\n12\n\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n9\n\nHence, the correct option is (B). \nQuestion 3 \n \nLet SLLdel be a function that deletes a node in a singly-linked list given a pointer to the node and a pointer \nto the head of the list. Similarly, let DLLdel be another function that deletes a node in a doubly-linked list \ngiven a pointer to the node and a pointer to the head of the list. \n \nLet \nn\n denote the number of nodes in each of the linked lists. Which one of the following choices is TRUE \nabout the worst-case time complexity of SLLdel and DLLdel ?\n[Data Structure, Linked List] \n \n(A) SLLdel is \nO\n(1) and DLLdel is \nO\n(\nn\n) \n(B) Both SLLdel and DLLdel are \nO\n(log(n)) \n \n(C) Both SLLdel and DLLdel are \nO\n(1) \n(D) SLLdel is \nO\n(n) and DLLdel is \nO\n(1) \nAns.\n \n(D)\n \nSol.\n \nGiven a single linked list SLL:\nA\nB\nC\nX\nY\nZ\nHere, were given head pointer and ptr pointer of the node to be deleted (Here y) We have to traverse from \nhead node till node before the one pointed by ptr (here X) which take \n( )\nO n\n time in worst case.\nHead\nPtr\nGiven a doubly linked list DLL:\nZ\nX\nA\nB\nX\nY\nX\nSimply we can do it as: \n \nptr \n\uf0ae\nprev \n\uf0ae\nnext = ptr \n\uf0ae\n next \n \nptr \n\uf0ae\nnext \n\uf0ae\nprev= ptr \n\uf0ae\nprev \n \ndelete (ptr) \n \nsince it can be performed in \n(1)\nO\ntime:\nHead\nPtr\nHence, the correct option is (D).\n \nQuestion 4 \n \nConsider the Deterministic Finite-state Automaton (DFA) A shown below. The DFA runs on the alphabet \n{0, 1}, and has the set of states {s, p, q, r}, with s being the start state and p being the only final state\n0\n1\ns\np\n1\nq\n1\n0\nr\n0\n1,0\n\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n10\n\nWhich one of the following regular expressions correctly describes the language accepted by A?\n[Theory of Computation & Finite Automata]\n \n \n(A) \n1(0*11)*\n \n(B) \n0(0 1)*\n\uf02b\n(C) \n1(0 11)*\n\uf02b\n \n(D) \n1(110*)*",
+ "answer_text": "(C)\n \nSol.\n \n:\n \nMethod 1 \n:\n \n \nThe given DFA generate strings like: \n \n{1,10,110,100,1011,1000....}\n\uf053\uf03d\n*\n(0 11)\n\uf02b\nSo, start with 1 to reach final state from where wave two choices os\n*\n1(0 11)\n\uf02b\n.\nHence R.E. is\nChecking options: \n \n(a) \nDosen\u2019t generate 10 \n \n(b) \nDosen\u2019t generate any os it starts with 0. \n \n(d) Dosen\u2019t generate 10. \n \nHence, the correct option is (C). \n \n:\n \nMethod 2 \n:\n \n \nGiven DFA shown below\n0\n1\n1\nS\nP\nQ\n1\nr\n0\n0\n0, 1\n\nSince state \nr\n is the dead state. So it can be removed.\n0\n1\n1\nS\nP\nQ\n\n1\nRequired Regular Expression\n1(0 11)*\n\uf03d\n\uf02b",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/1/exp.webp b/frontend/public/assets/gate/cs/questions/2023/1/exp.webp
new file mode 100644
index 0000000..4231690
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/1/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/1/q.webp b/frontend/public/assets/gate/cs/questions/2023/1/q.webp
new file mode 100644
index 0000000..fd7483f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/1/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/26/data.json b/frontend/public/assets/gate/cs/questions/2023/26/data.json
new file mode 100644
index 0000000..6bf1b2d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/26/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "26",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "(A) \nSol.\n \nFollowing the execution sequence\nMain ( )\nF\n1\n ( )\nF\n3\n ( )\nF\n2\n (2)\nReturn (1)\nReturn (5)\nx\n =2\nF\n3\n ( )\nelse\nreturn ( *\n( \n_\n 1))\nx F x\n2\nreturn ( *\n(1))\nx F\n2\nReturn (5)\nF\n3\n ( )\nF\n1\n (1)\nReturn (5)\nReturn (1)\nHence, the correct option is (A). \nQuestion 27 \n \nConsider the control flow graph shown.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n27\n\nENTRY\n1\nB\n1\ni\nm\n=\n-\nj\nn\n=\n10\na\n =\n2\nB\n1\ni\ni\n= +\n1\nj\nj\n=\n-\n3\nB\n20\na\n =\n4\nB\n1\ni\na\n=\n+\nWhich one of the following choices correctly lists the set of live variables at the exit point of each basic \nblock? \n[Compiler Design, Syntax Directed Translation] \n \n(A) B1: {}, B2: {a}, B3: {a}, B4: {a} \n \n(B) B1: {i, j}, B2: {a}, B3: {a}, B4: {i} \n \n(C) B1: {a, i, j}, B2: {a, i, j}, B3: {a, i}, B4: {a} \n \n(D) B1: {a, i, j}, B2: {a, j}, B3: {a, j}, B4: {a, i, j} \n (D) \nSol.\n \nA variable \n'\n'\nV\n is live (for statement \nb\n ) if there exist a path from this statement to another statement is \n' '\na\n in CFG such that for each \n\uf03c\uf03d\n\uf03c\nb\nk\na\n and \nV\n is defined in any statement \nk\n in CFG.\nEXIT\nFor \n1\nB\n : There\u2019s path to \n2\n3\n,\nB B\n and \n4\nB\n .\nIn this path \n' '\ni\n and \n'\n'\nJ\n are live as they\u2019re both used before modifying.\n' '\na\n is not live as it\u2019s used in \n3\nB\n before being used in \n4\nB\n .\nAnother path is \n2\n4\n\uf0ae\nB\nB\nWhere all 3 \n' '\na\n , \n' '\ni\n and \n'\n'\nJ\n are live so live variable at exit of \n1\n{ , , }\n\uf03d\nB\na i J\n .\nFor \n2\nB\n : Similarly for path \n3\n4\n,\nB B\n \n'\n'\nJ\n is live for path \n4\nB\n \n' '\na\n and \n'\n'\nJ\n are live.\nFor \n3\nB\n : Same as \n1\nB\n as path for exit is same.\nSo, live variable at exits of \n4\n{ , , }\n\uf03d\nB\na i J\n .\ni \nj \nm \nn \na\n1\nB\n \nLive Live Dead Dead Live\n2\nB\n \nDead Live \nDead Dead Live\n3\nB\n \nDead Live \nDead Dead Live\n4\nB\n \nLive \nLive \nDead Dead live \n \nHence, the correct option is (D). \nQuestion 28\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n28\n\nConsider the two functions incr and decr shown below. \n \n[Operating System, Process Management II] \n \nincr(){ \ndecr(){ \n \n \nwait(s); \n \nwait(s); \n \n \nX = X+1; \n \nX = X-1; \n \n \nsignal(s); \n \nsignal(s); \n \n} \n \n} \n \nThere are 5 threads each invoking incr once, and 3 threads each invoking decr once, on the same shared \nvariable X. The initial value of X is 10. \n \nSuppose there are two implementations of the semaphore s, as follows: \n \nI-1: s is a binary semaphore initialized to 1. \n \nI-2: s is a counting semaphore initialized to 2. \n \nLet V1, V2 be the values of X at the end of execution of all the threads with implementations I-1, I-2, \nrespectively. \n \nWhich one of the following choices corresponds to the minimum possible values of V1, V2, respectively? \n \n(A) 15, 7 \n(B) 7, 7 \n \n(C) 12, 7 \n(D) 12, 8 \n (C)",
+ "question_text": "Question 26 \n \nConsider the following program :\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n26\n\nint main() \n{ \n \nf1(); \n \nf2(2); \n \nf3(); \n \nreturn(0); \n}\nint f1() \n{ \n \nreturn(1); \n}\nint f2(int X) \n{ \n \nf3(); \n \nif (X==1) \n \n \nreturn f1(); \n \nelse \n \n \nreturn (X*f2(X-1)); \n}\nint f3() \n{ \n \nreturn(5); \n}\nWhich one of the following options represents the activation tree corresponding to the main function?\n[Algorithm, Complexity Analysis & Asympotic] \n \n(A)\nmain\nmain\n(B)\n1\nf\n2\nf\n3\nf\n1\nf\n2\nf\n3\nf\n3\nf\n1\nf\n3\nf\n2\nf\n\n3\nf\n1\nf\n\n(C)\n(D)\nmain\nmain\n1\nf\n2\nf\n3\nf\n1\nf\n1\nf\n2\nf\n3\nf\n2\nf\n3\nf\n1\nf\n",
+ "answer_text": "(A) \nSol.\n \nFollowing the execution sequence\nMain ( )\nF\n1\n ( )\nF\n3\n ( )\nF\n2\n (2)\nReturn (1)\nReturn (5)\nx\n =2\nF\n3\n ( )\nelse\nreturn ( *\n( \n_\n 1))\nx F x\n2\nreturn ( *\n(1))\nx F\n2\nReturn (5)\nF\n3\n ( )\nF\n1\n (1)\nReturn (5)\nReturn (1)\nHence, the correct option is (A). \nQuestion 27 \n \nConsider the control flow graph shown.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n27\n\nENTRY\n1\nB\n1\ni\nm\n=\n-\nj\nn\n=\n10\na\n =\n2\nB\n1\ni\ni\n= +\n1\nj\nj\n=\n-\n3\nB\n20\na\n =\n4\nB\n1\ni\na\n=\n+\nWhich one of the following choices correctly lists the set of live variables at the exit point of each basic \nblock? \n[Compiler Design, Syntax Directed Translation] \n \n(A) B1: {}, B2: {a}, B3: {a}, B4: {a} \n \n(B) B1: {i, j}, B2: {a}, B3: {a}, B4: {i} \n \n(C) B1: {a, i, j}, B2: {a, i, j}, B3: {a, i}, B4: {a} \n \n(D) B1: {a, i, j}, B2: {a, j}, B3: {a, j}, B4: {a, i, j} \n (D) \nSol.\n \nA variable \n'\n'\nV\n is live (for statement \nb\n ) if there exist a path from this statement to another statement is \n' '\na\n in CFG such that for each \n\uf03c\uf03d\n\uf03c\nb\nk\na\n and \nV\n is defined in any statement \nk\n in CFG.\nEXIT\nFor \n1\nB\n : There\u2019s path to \n2\n3\n,\nB B\n and \n4\nB\n .\nIn this path \n' '\ni\n and \n'\n'\nJ\n are live as they\u2019re both used before modifying.\n' '\na\n is not live as it\u2019s used in \n3\nB\n before being used in \n4\nB\n .\nAnother path is \n2\n4\n\uf0ae\nB\nB\nWhere all 3 \n' '\na\n , \n' '\ni\n and \n'\n'\nJ\n are live so live variable at exit of \n1\n{ , , }\n\uf03d\nB\na i J\n .\nFor \n2\nB\n : Similarly for path \n3\n4\n,\nB B\n \n'\n'\nJ\n is live for path \n4\nB\n \n' '\na\n and \n'\n'\nJ\n are live.\nFor \n3\nB\n : Same as \n1\nB\n as path for exit is same.\nSo, live variable at exits of \n4\n{ , , }\n\uf03d\nB\na i J\n .\ni \nj \nm \nn \na\n1\nB\n \nLive Live Dead Dead Live\n2\nB\n \nDead Live \nDead Dead Live\n3\nB\n \nDead Live \nDead Dead Live\n4\nB\n \nLive \nLive \nDead Dead live \n \nHence, the correct option is (D). \nQuestion 28\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n28\n\nConsider the two functions incr and decr shown below. \n \n[Operating System, Process Management II] \n \nincr(){ \ndecr(){ \n \n \nwait(s); \n \nwait(s); \n \n \nX = X+1; \n \nX = X-1; \n \n \nsignal(s); \n \nsignal(s); \n \n} \n \n} \n \nThere are 5 threads each invoking incr once, and 3 threads each invoking decr once, on the same shared \nvariable X. The initial value of X is 10. \n \nSuppose there are two implementations of the semaphore s, as follows: \n \nI-1: s is a binary semaphore initialized to 1. \n \nI-2: s is a counting semaphore initialized to 2. \n \nLet V1, V2 be the values of X at the end of execution of all the threads with implementations I-1, I-2, \nrespectively. \n \nWhich one of the following choices corresponds to the minimum possible values of V1, V2, respectively? \n \n(A) 15, 7 \n(B) 7, 7 \n \n(C) 12, 7 \n(D) 12, 8 \n (C)",
+ "explanation_text": "Sol. \nFor implementation \n1\nI\n :\nBinary semaphore \n1\n\uf03d\ns\n and \n()\nincr\n called 5 times and \n()\ndecr\n called 3 times by threads\nSo, it alternate as sequence. \n \n()\nincr\n, \n()\ndecr\n, \n()\nincr\n, \n()\ndecr\n, \n()\nincr\n, \n()\ndecr\n which all make \nX\n as same value 10 and then two \n()\nincre\nmaking \n1\n12\n\uf03d\nV\nFor implementation \n2\nI\n :\nCounting semaphore \n2\n\uf03d\ns\n. \n \nSo, one possible sequence is \n \n()\ndecr\n{ \n \nwait(s); \n//s becomes \u20181\u2019 \n \nread \nX\n; \n//\nX\n becomes/reads and stores value 10. \n \n--------------- \n \nRun incr ( ) 5 times \n \n-------------- \n \n9\n\uf03d\nX\n \n//write \nX\n . \n \nTwo more decr ( ) so, \n7\n\uf03d\nX\n.\nValue \n2\n7\n\uf03d\nV\n.\nHence, the correct option is (C).\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n29\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/26/exp.webp b/frontend/public/assets/gate/cs/questions/2023/26/exp.webp
new file mode 100644
index 0000000..f9a3c7f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/26/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/26/q.webp b/frontend/public/assets/gate/cs/questions/2023/26/q.webp
new file mode 100644
index 0000000..47bf8a0
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/26/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/29/data.json b/frontend/public/assets/gate/cs/questions/2023/29/data.json
new file mode 100644
index 0000000..3f8f5f2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/29/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "29",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 29 \n \nConsider the context-free grammar \nG\n below\nS\naSb X\n\uf0ae\nX\naX Xb a b\n\uf0ae\nwhere \nS\n and \nX\n are non-terminals, and \na\n and \nb\n are terminal symbols. The starting non-terminal is \nS\n. \n \nWhich one of the following statements is CORRECT?\n[Theory of Computation, Properties of Language]\n \n \n(A) The language generated by \nG\n is \n(\n)*\na\nb\n\uf02b\n(B) The language generated by \nG\n is \n*(\n) *\na\na\nb b\n\uf02b\n(C) The language generated by \nG\n is \n* *(\n)\na b\na\nb\n\uf02b\n(D) The language generated by \nG\n is not a regular language \nAns. (B) \nSol.\n \n:\n \nMethod 1 \n:\n \n \nOption A : Since \nE\n can\u2019t be generated by \nG\n so, option (A) is false, which accept \nE\n . \n \nOption C : Since \n'\n'\nba\n \nG\n but is accepted by \n* *(\n)\n\uf02b\na b\na\nb\n \n10( )\nC\n s false.\nOption D : It is false since the language generated has satisfied all conditions of being regular language. \n \nOption B : It is true as it accepts all strings generated by \n*(\n) *\n\uf02b\na\na\nb b\n .\nHence, the correct option is (B). \n \n:\n \nMethod 2 \n:\nS\nasb\n\uf0ae\n\uf0b4\na\nxb a b\n\uf0b4\uf0ae\n\uf0b4\nS\na\ns\nb\n\uf0ae\n\uf02a\n\uf0de\n\uf0b3\n0\nn\nn\na sb n\nn\nn\na\nb\n\uf0de\n\uf0b4\nn\nn\na a\nbb\n\uf0de\n\uf0b4\nn\nn\na a\nb b\n\uf02a\n\uf02a\n\uf0de\n\uf0b4\n\uf02a\n\uf02a\n\uf02a\n\uf0de\n\uf0b4\nn\nn\na a\nb b\n(\n)\nn\nn\na a a\nb b b\n\uf02a\n\uf02a\n\uf0de\n\uf02b\n(\n)\na a\nb b\n\uf02a\n\uf02a\n\uf0de\n\uf02b",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/29/q.webp b/frontend/public/assets/gate/cs/questions/2023/29/q.webp
new file mode 100644
index 0000000..a0cd50d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/29/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/30/data.json b/frontend/public/assets/gate/cs/questions/2023/30/data.json
new file mode 100644
index 0000000..7dc73a1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/30/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "30",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "(A) \nSol.\n \n:\n \nMethod 1 \n:\n \n \nOption B : This option is not true since \nE\n is not accepted by \nP\n . \n \nOption C : This option is false since \nE\n is not accepted by \nP\n . \n \nOption D : This option is false since \nE\n is not accepted by \nP\n . \n \nOption A : It accept all strings generated by \nP\n . \n \nHence, the correct option is (A). \n \n:\n \nMethod 2 \n:\n \n \nFrom the given diagram it is clear that the starting symbol in the input string must be \u2018a\u2019 and on every \u2018a\u2019 \nit pushes \u2018A\u2019 into stack. If the input string becomes empty it goes to the state Q and it empties the stack. \nThis means that PDA accepts the language\n\uf07b\n\uf07d\n1\nn\nL\na n\n\uf03d\n\uf0b3\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n31\n\nIf after a\u2019s in the input string if b\u2019s comes then for every \u2018b\u2019 it will be delete \u2018A\u2019 from the stack. When the \nstring becomes empty if the top most symbol in the stack in \u2018A\u2019 then the PDA empties the stack. This \nmeans the PDA accepts the language.\n\uf07b\n\uf07d\nm\nn\nL\na b n\nm\n\uf03d\n\uf03c\nLanguage accepted by the PDA is\n\uf07b\n\uf07d\uf07b\n\uf07d\n1\nm\nm\nn\nL\na\nm\na b n\nm\n\uf03d\n\uf0b3\n\uf03c\n\nOR\n\uf07b\n\uf07d\n1\n and \nm\nn\nL\na b\nm\nn\nm\n\uf03d\n\uf0a3\n\uf03c",
+ "question_text": "Question 30\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n30\n\nConsider the pushdown automaton (PDA) P below, which runs on the input alphabet \n{ , }\na b\n , has stack\nalphabet \n( , )\nA\n\uf05e\n, and has three states \n{ , , }\ns p q\n , with \ns\n being the start state. A transition from state \nu\n to\nstate \nv\n\u00b8labelled \n/\n/\nc X\n \uf067\n, where \nc\n is an input symbol or \n,\n X\n\uf0ce\nis a stack symbol, and \n\uf067\n is a string of stack\nsymbols, represents the fact that in state u, the PDA can read \nc\n from the input, with \nX\n on the top of its \nstack, pop \nX\n from the stack, push in the string \n\uf067\n on the stack, and go to state \nv\n . In the initial configuration,\nthe stack has only the symbol \n\uf05e\n in it. \n \nThe PDA accepts by empty stack.\n| |\na\nA\n\uf05e\n\uf05e\n|\n|\na A AA\n|\n|\nb A\n \uf0ce\n|\n|\nb A\n \uf0ce\ns\np\n|\n|\nA\n\uf0ce\n\uf0ce\n|\n|\nA\n\uf0ce\n\uf0ce\nq\n|\n|\nA\n\uf0ce\n\uf0ce\n| |\n\uf0ce\uf05e\uf0ce\n\nWhich one of the following options correctly describes the language accepted by P?\n[Theory of Computation, Pushdown Automata]\n \n \n(A) \n{\n1\nand\n}\nm\nn\na b\nm\nn\nm\n\uf0a3\n\uf03c\n \n(B) \n{\n0\n}\nm\nn\na b\nn\nm\n\uf0a3\n\uf0a3\n(C) \n{\n0\nand 0\n}\nm\nn\na b\nm\nn\n\uf0a3\n\uf0a3\n \n(D) \n{\n0\n}\n{\n0\n}\nm\nn\na\nm\nb\nn\n\uf0a3\n\uf0c8\n\uf0a3",
+ "answer_text": "(A) \nSol.\n \n:\n \nMethod 1 \n:\n \n \nOption B : This option is not true since \nE\n is not accepted by \nP\n . \n \nOption C : This option is false since \nE\n is not accepted by \nP\n . \n \nOption D : This option is false since \nE\n is not accepted by \nP\n . \n \nOption A : It accept all strings generated by \nP\n . \n \nHence, the correct option is (A). \n \n:\n \nMethod 2 \n:\n \n \nFrom the given diagram it is clear that the starting symbol in the input string must be \u2018a\u2019 and on every \u2018a\u2019 \nit pushes \u2018A\u2019 into stack. If the input string becomes empty it goes to the state Q and it empties the stack. \nThis means that PDA accepts the language\n\uf07b\n\uf07d\n1\nn\nL\na n\n\uf03d\n\uf0b3\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n31\n\nIf after a\u2019s in the input string if b\u2019s comes then for every \u2018b\u2019 it will be delete \u2018A\u2019 from the stack. When the \nstring becomes empty if the top most symbol in the stack in \u2018A\u2019 then the PDA empties the stack. This \nmeans the PDA accepts the language.\n\uf07b\n\uf07d\nm\nn\nL\na b n\nm\n\uf03d\n\uf03c\nLanguage accepted by the PDA is\n\uf07b\n\uf07d\uf07b\n\uf07d\n1\nm\nm\nn\nL\na\nm\na b n\nm\n\uf03d\n\uf0b3\n\uf03c\n\nOR\n\uf07b\n\uf07d\n1\n and \nm\nn\nL\na b\nm\nn\nm\n\uf03d\n\uf0a3\n\uf03c",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/30/q.webp b/frontend/public/assets/gate/cs/questions/2023/30/q.webp
new file mode 100644
index 0000000..c50d16d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/30/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/31/data.json b/frontend/public/assets/gate/cs/questions/2023/31/data.json
new file mode 100644
index 0000000..d3fc70b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/31/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "31",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 31 \n \nConsider the given C-code and its corresponding assembly code, with a few operands U1\u2013U4 being \nunknown. Some useful information as well as the semantics of each unique assembly instruction is \nannotated as inline comments in the code. The memory is byte-addressable. \n \n//C-code \n;assembly-code (; indicates comments) \n \n \n \n;r1-r5 are 32-bit integer registers \n \n \n \n;initialize r1=0, r2=10 \n \n \n \n;initialize r3, r4 with base address of a, b \n \n \nint a[10], b[10], i; \nL01: jeq r1, r2, end ;if(r1==r2) goto end \n \n// int is 32-bit \nL02: lw r5, 0(r4) \n;r5 <- Memory[r4+0] \n \nfor (i=0; i<10;i++) \nL03: shl r5, r5, U1 \n;r5 <- r5 << U1 \n \na[i] = b[i] * 8; \nL04: sw r5, 0(r3) \n;Memory[r3+0] <- r5 \n \n \n \nL05: add r3, r3, U2 ;r3 <- r3+U2 \n \n \n \nL06: add r4, r4, U3 \n \n \n \nL07: add r1, r1, 1 \n \n \n \nL08: jmp U4 \n;goto U4 \n \n \n \nL09: end \n Which one of the following options is a CORRECT replacement for operands in the position (U1, U2, \n \nU3, U4) in the above assembly code? \n \n \n \n \n[Computer Organisation & Architecture, Machine Instruction & Addressing Format]\n \n \n(A) (8, 4, 1, L02) \n(B) (3, 4, 4, L01) \n \n(C) (8, 1, 1, L02) \n(D) (3, 1, 1, L01) \nAns. (B) \nSol.\n \n:\n \nMethod 1 \n:\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n32\n\nHere an analyzing code we can observe that. We are to shift value of \n5\nr\n left by \nu\n places. In code were\nmultiplying element of \nb\n by 8. So, \n1\n3\n\uf03d\nu\n, which is same as multiplying value by 8 or \n3\n2\n .\nAlso, \n3\nr\n and \n4\nr\n stores storing address of next element of arrays \na\n and v. Since it\u2019s 32 bit system and size\nof int is 4B so well increment by 4 so, value of \n2\nu\n and \n3\nu\n s 4.\nWe have to jump to short of code i.e. \n01\nL\n so that for-loop can be run.\nSo, \n4\nu\n is \n01\nL\n.\nHence, the correct option is (B). \n \n:\n \nMethod 2 \n:\n \n \nSince memory is byte addressable and integer is 32 bit means 4 byte.\nSo increment variables and byte needed to add.\nLO5\n : add \n3\n3\n2\n, ,\nr r U\n \n3\n3\n2\nr\nr\nu\n\uf0ac\n\uf02b\nHere, \n2\n4\nU\n\uf03d\nSimilarly, \n3\n4\nU\n \uf03d\n8\nJUMPU4;gotoU4\nLO\n \uf03d\nThis instruction move the control to comparison condition\nSo, \n4\n1\nU\nLO\n\uf03d\nHence, option B is correct.\n1\n3,\n2\n4,\n3\n4,\n4\n1\nU\nU\nU\nU\nLO\n\uf03d\n\uf03d\n\uf03d\n\uf03d",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/31/q.webp b/frontend/public/assets/gate/cs/questions/2023/31/q.webp
new file mode 100644
index 0000000..9cb9e04
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/31/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/32/data.json b/frontend/public/assets/gate/cs/questions/2023/32/data.json
new file mode 100644
index 0000000..8cd52d3
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/32/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "32",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 32 \n \nA 4 kilobyte (KB) byte-addressable memory is realized using four 1 KB memory blocks. Two input \naddress lines (IA4 and IA3) are connected to the chip select (CS) port of these memory blocks through a \ndecoder as shown in the figure. The remaining ten input address lines from IA11\u2013IA0 are connected to \nthe address port of these blocks. The chip select (CS) is active high.\n[Computer Organisation & Architecture, Data Path & Control Unit]\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n33\n\nMSB\nIA11\nIA10\nIA9\nIA8\nIA7\nIA6\nIA5\nIA2\n1KB memory\n1KB memory\n1KB memory\n10 bit\n1KB memory\nIA1\nIA0\nAddr\nAddr\nAddr\nAddr\nLSB\nDecoder\nX1\n CS\nX2\n CS\nX3\nX4\nCS\nCS\n0\nQ\nIA4\nIA3\nA1\nA0\n1\nQ\n2\nQ\n3\nQ\nThe input memory addresses (IA11\u2013IA0), in decimal, for the starting locations (Addr=0) of each block \n(indicated as X1, X2, X3, X4 in the figure) are among the options given below. Which one of the following \noptions is CORRECT? \n \n(A) (0, 1, 2, 3) \n(B) (0, 1024, 2048, 3072) \n \n(C) (0, 8, 16, 24) \n(D) (0, 0, 0, 0) \nAns. (C) \nSol.\n \nThe addresses are of length 12 bits.\nThe 2:4 decoder with input \n3\nIA\n and \n4\nIA\n decides which chip is selected.\nPossible values of \n4\n3\nIA IA\n at 4.\nFor starting address the valued \n11\n5\n.....\nI\nI\n remains \n'0'\n and we\u2019re focused on value from \n4\n0\n......\nI\nI\n .\nSo,\n4\nI\n \n2\nI\n \nResulting value/Starting address\n0 \n0 \n0\n(\n)\nX\n \n0(00000)\n0 \n1 \n1\n(\n)\nX\n \n8(01000)\n1 \n0 \n2\n(\n)\nX\n \n16(10000)\n1 \n1 \n3\n(\n)\nX\n \n24(11000)\nHence, the correct option is (C). \nQuestion 33 \n \n \n \n(Digital Electronics) \n \nConsider a sequential digital circuit consisting of T flip-flops and D flip-flops as shown in the figure. \nCLKIN is the clock input to the circuit. At the beginning, Q1, Q2 and Q3 have values 0, 1 and 1, \nrespectively.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n34\n\nT\nD\nT\nQ1\nQ\nQ2\nQ\nQ3\nQ\nCLK\nCLK\nCLKIN\nCLK\nWhich one of the given values of (Q1, Q2, Q3) can NEVER be obtained with this digital circuit?\n[Digital Logic, Sequential Circuit] \n \n(A) (0, 0, 1) \n(B) (1, 0, 0) \n \n(C) (1, 0, 1) \n(D) (1, 1, 1) \nAns. (A) \nSol.\n \nGiven circuit is made from two \nT\n flip flops and one D flp-flop.\nHere, \n1\n3\n\uf03d\nT\nQ\nSo, \n1\n1\n1\n3\n1\n3\n1\n\uf02b\n\uf03d\n\uf0c5\n\uf03d\n\uf0c5\n\uf03d\nQ\nT\nQ\nQ\nQ\nQ\nQ\nAlso, \n2\n1\n\uf03d\nD\nQ\nSo, \n2\n1\n\uf02b\n\uf03d\nQ\nQ\nNow, \n3\n2\n\uf03d\nT\nQ\n3\n3\n2\n3\n2\n\uf02b\n\uf03d\n\uf0c5\n\uf03d\n\uf0c5\nQ\nT\nQ\nQ\nQ\nThe state table looks like :\n1\nQ\n \n2\nQ\n \n3\nQ\n \n1\n3\n1\nT\nQ\nQ\n\uf03d\n2\n1\nD\nQ\n\uf03d\n \n3\n2\n3\nT\nQ\nQ\n\uf03d\n\uf0c5\n0 \n1 \n1 \n0 \n0 \n0 \n0 \n0 \n0 \n1 \n0 \n0 \n1 \n0 \n0 \n0 \n1 \n0 \n0 \n1 \n0 \n1 \n0 \n1 \n1 \n0 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n0 \n1 \n1 \n0 \n0 \n1 \n1 \n \n \nSo, the missing state is 001. \n \nHence, the correct option is (A). \nQuestion 34 \n \n(Digital Electronics) \n \nA Boolean digital circuit is composed using two 4-input multiplexers (M1 and M2) and one 2-input \nmultiplexer (M3) as shown in the figure. X0\u2013X7 are the inputs of the multiplexers M1 and M2 and could \nbe connected to either 0 or 1. The select lines of the multiplexers are connected to Boolean variables A, B \nand C as shown. \n \n \n[Digital Logic, Combination circuit]\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n35\n\nMultiplexer\n0\nX0\nM1\n1\nX1\nQ\n2\nX2\nMultiplexer\n3\nX3\nS1 S0\nM3\n0\nA\nC\nQ\nMultiplexer\n1\nS\n0\nX4\nM2\n1\nX5\nQ\n2\nX6\n3\nX7\nS1 S0\nA\nC\nWhich one of the following set of values of (X0, X1, X2, X3, X4, X5, X6, X7) will realise the Boolean\nB\nfunction \n.\n. .\nA\nAC\nAB C\n\uf02b\n\uf02b\n? \n \n(A) (1, 1, 0, 0, 1, 1, 1, 0) \n(B) (1, 1, 0, 0, 1, 1, 0, 1) \n \n(C) (1, 1, 0, 1, 1, 1, 0, 0) \n(D) (0, 0, 1, 1, 0, 1, 1, 1) \nAns. (C) \nSol.\n \nGiven :\n\uf03d\n\uf02b\n\uf0d7\n\uf02b\nF\nA\nA C\nABC\n .\nSince final output is given by \n2 1\n\uf0b4\n mux \n3\nm\nSo, MSB (most significant bit) is selection line of \n3\nm\n i.e. \nB\n .\nAlso we can observe from \n1\nM\n and \n2\nM\n , that the selection lines \n1\n0\n( ,\n)\n( , )\n\uf03d\nS S\nA C\n so the function has \nC\nas LSB\nThe function \n( , , )\n \uf03d\n\uf02b\n\uf02b\nF B A C\nA\nAC\nABC\n is implemented using inputs as :\nB \nA \nC\n0\nX\n \n0 \n0 \n0 \n1\n\uf0ae\nDue to \n'\nA\n1\nX\n \n0 \n0 \n1 \n1\n\uf0ae\nDue to \n'\nA\n2\nX\n \n0 \n1 \n0 \n0\n3\nX\n \n0 \n1 \n1 \n1\n\uf0ae\nDue to \n'\nAB C\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n36\n\n4\nX\n \n1 \n0 \n0 \n1\n\uf0ae\nDue to \n'\nA\n5\nX\n \n1 \n0 \n1 \n1\n\uf0ae\nDue to \n'\nA\n6\nX\n \n1 \n1 \n0 \n0\n7\nX\n \n1 \n1 \n1 \n0\n\nSo, \n0\n1\n7\n(\n,\n.........\n)\n(11011100)\n\uf03d\nX\nX\nX\nHence, the correct option is (C). \nQuestion 35 \n \nConsider the IEEE-754 single precision floating point numbers P=0xC1800000 and Q=0x3F5C2EF4. \nWhich one of the following corresponds to the product of these numbers (i.e., P \u00d7 Q), represented in the \nIEEE-754 single precision format?\n[Computer Organization & Architecture, Machine Instruction & Addressing Format] \n \n(A) 0x404C2EF4 \n(B) 0x405C2EF4 \n \n(C) 0xC15C2EF4 \n(D) 0xC14C2EF4 \nAns. (C) \nSol.\n \nHere, \n0 1800000\n\uf03d\uf0b4\n\uf03d\nP\n1100 0001 1000 0000 0000 0000 0000 0000 \n \nIn IEEE-754 single precision format. \n \n( )\n \uf0ae\nS\n Sign bit \n1\n\uf03d\nBiased exponent \n131\n\uf03d\n \n \nActual exponent \n131 127\n4\n\uf03d\n\uf02d\n\uf03d\n \n \n( )\n \uf0ae\nm\n Mantissa = 0000 0000 0000 0000 0000 000\nThe number \n( 1)\n(1. ) 2\n\uf03d\uf02d\n\uf0b4\n\uf0b4\ns\ne\nm\n1\n4\n( 1)\n1.0 2\n16\n\uf03d\uf02d\n\uf0b4\n\uf0b4\n\uf03d\uf02d\nSimilarity, \n0x3F5C2EE4\nQ\n \uf03d\n\uf03d\n 0011 1111 0101 1100 0010 1110 1111 0100\nSign \n0\n\uf03d\n \n \nBiased exponent \n126\n\uf03d\n \n \nActual exponent \n126 127\n1\n\uf03d\n\uf02d\n\uf03d\uf02d\n1\n1.10111000010111011110100 2\n\uf02d\n\uf03d\n\uf0b4\nQ\nSo,\n1\n4\n*\n1.10111000010111011110100 2\n2\n\uf02d\n\uf03d\uf02d\n\uf0b4\n\uf0b4\nP Q\n\n3\n*\n1.10111000010111011110100 2\n\uf03d\uf02d\n\uf0b4\nP Q\n\nSign \n1\n\uf03d\n \n \nBiased exponent \n127\n3\n130\n10000010\n\uf03d\n\uf02b\uf03d\n\uf03d\n. \n \nThe number in IEEE-754 format is :\n1 \n1000 0010 \n1011 1000 0101 1101 1110 100\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n37\n\nMostissa\n\uf0af\nSign bit\n\uf0af\nExponent\n\uf0af\n\n0xC15C2EF4\n \n \nHence, the correct option is (C). \nQuestion 36 \n \nLet A be a priority queue for maintaining a set of elements. Suppose A is implemented using a max-heap \ndata structure. The operation Extract-Max(A) extracts and deletes the maximum element from A. The \noperation Insert(A, key) inserts a new element key in A. The properties of a max-heap are preserved at \nthe end of each of these operations. \n \nWhen A contains n elements, which one of the following statements about the worst case running time of \nthese two operations is TRUE? \n \n \n \n [Data Structure, tree] \n \n(A) Both Extract-Max(\nA\n) and Insert(\nA\n, key) run in O(\nl\n). \n \n(B) Both Extract-Max(\nA\n) and Insert(\nA\n, key) run in \nO\n(log(\nn\n)). \n \n(C) Extract-Max(\nA\n) runs in \nO\n(\nl\n) whereas Insert(\nA\n, key) runs in \nO\n(\nn\n). \n \n(D) Extract-Max(\nA\n) runs in \nO\n(\nl\n) whereas Insert(\nA\n, key) runs in \nO\n(log(\nn\n)). \nAns. (B) \nSol.\n \nSince both extract-max (A) and Insert (A) needs to perform heapify ( ) operation, both take \n0(log( ))\nn\ntime. \n \nHence, the correct option is (B). \nQuestion 37 \n \nConsider the C function foo and the binary tree shown.\n10\n5\n11\n3\n8\n13\ntype\ndef\n struct node { \n \n \nint val; \n \n \nstruct node *left, *right; \n \n} node; \n \n \n \nint \nf\noo(node *\np \n) { \n \n \nint retval; \n \n \nif (\np\n == NULL) \n \n \n \nreturn 0; \n \n \nelse { \n \n \n \nretval = p->val + foo(p->left) + \nf\noo(\np\n->right);\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n38\n\nprintf(\"%\nd\n \", retval); \n \n \n \nreturn retval; \n \n \n} \n \n} \n \nWhen foo is called with a pointer to the root node of the given binary tree, what will it print?\n[Data Structure, Tree] \n \n(A) 3 8 5 13 11 10 \n(B) 3 5 8 10 11 13 \n \n(C) 3 8 16 13 24 50 \n(D) 3 16 8 50 24 13 \nAns. (C) \nSol.\n \n:\n \nMethod 1 \n:\n \n \nGiven :\n Retval\n(\nleft)\n(\nri\nt\no\ng\noo\no\nh )\nP\nva\nP\nf\nl\nP\nf\n\uf03d\n\uf0ae\n\uf02b\n\uf0ae\n\uf02b\n\uf0ae\nNow, considering given tree with root 10. \n \nRetval\n 10\n(\nleft)\noo(\noo\nright)\nP\nf\nP\nf\n\uf03d\n\uf02b\n\uf0ae\n\uf02b\n\uf0ae\nSo, until we execute leaf node we won\u2019t get to return to root node. \n \nAlso child-Nodes 3, 8 and 13 will return value of leaf nodes, i.e. 3,8 and 13 only. \n \nSo, 5 node will return \n5\n3 8\n16\n\uf02b\uf02b\n\uf03d\n. \n \n \n11 node will return \n11 13\n24\n\uf02b\n\uf03d\n \n \n \n10 node will return \n10 16\n24\n50\n\uf02b\n\uf02b\n\uf03d\n \n \nSince there\u2019s no rule about evaluation order of parameters of \n' '\n\uf02b\n but considering/assuming left right rule \nby default we get output as : \n3,8,16,13,24,50\n.\nHence, the correct option is (C). \n \n:\n \nMethod 2 \n:\n \n \nRet val \nval\n00(\nLeft)\n00(\nRight)\nP\nF\nP\nF\nP\n\uf03d\n\uf0ae\n\uf02b\n\uf0ae\n\uf02b\n\uf0ae\n10+16+24\n10\nRetval = 50\n5+3+8\nRetval = 16\n11\n5\n11+0+13\nRetval = 24\n13\n8\n3\n13+0+0\n8+0+0\n3+0+0\nRetval = 3\nRetval = 8\nRetval = 13\n\nOutput = 3, 8, 16, 13, 24, 50",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/32/q.webp b/frontend/public/assets/gate/cs/questions/2023/32/q.webp
new file mode 100644
index 0000000..6a05ca8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/32/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/38/data.json b/frontend/public/assets/gate/cs/questions/2023/38/data.json
new file mode 100644
index 0000000..6fb8837
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/38/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "38",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "(D)\n (A), (D) \nSol.\n \nThe symmetric difference is similar to EXOR operation in digital logic. \n \nNow left check it for following properties : \n \n1. \nClosure property : Operator \n\uf044\n is defined as \n \n \n(\n)\n(\n)\n\uf044\uf03d\n\uf02d\n\uf0c8\n\uf02d\nA B\nA\nB\nB\nA\n(\n)\n(\n)\n\uf03d\n\uf0c8\n\uf02d\n\uf0c7\nA\nB\nA\nB\n2\n \nX\n \n is power set of \nX\n , so it contains all subset of \nX\n .\n\nSo, \n2\n,\n2\nX\nX\nA B\nA B\n\uf044\uf0ce\n\uf022\n\uf0ce\n.\n2. \nAssociativity : It\u2019s similar to XOR operation which is associative always, followed\n3. \nIdentity : \n2\n\uf0ce\nX\nC\n is identity element.\nSo, \n\uf044\n\uf03d\n\uf044\uf03d\nA C\nC A\nA\n for \n2\n\uf0ce\nX\nC\n \n \n \n(\n)\n(\n)\n\uf044\n\uf03d\n\uf0c8\n\uf02d\n\uf0c7\n\uf03d\nA C\nA\nC\nA\nC\nA\n which is possible when \n\uf03d\uf046\nC\n.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n42\n\nSo, identity exists. \n \n4. \nInverse : \n\uf044\n\uf03d\n\uf044\n\uf03d\uf046\nA B\nB A\nthen \n\uf044\nA B\n are inverse\n\uf066\n each option given \n,\n2\n\uf0ce\nX\nA B\n.\nSo, \n(\n)\n(\n)\n\uf0c8\n\uf02d\n\uf0c7\n\uf03d\uf046\nA\nB\nA\nB\nIt\u2019s possible \n(\n)\n(\n)\n\uf0c8\n\uf03d\n\uf0c7\nA\nB\nA\nB\nIf \n\uf03d\nA\nB\n then its possible.\nHence, every element of \n2\n \nX\n \n is it\u2019s own inverse and \nH\n is a group. \n \nHence, the correct options are (A) & (D). \nQuestion 42 \n \nSuppose in a web browser, you click on the www.gate-2023.in URL. The browser cache is empty. The IP \naddress for this URL is not cached in your local host, so a DNS lookup is triggered (by the local DNS \nserver deployed on your local host) over the 3-tier DNS hierarchy in an iterative mode. No resource \nrecords are cached anywhere across all DNS servers. \n \nLet RTT denote the round trip time between your local host and DNS servers in the DNS hierarchy. The \nround trip time between the local host and the web server hosting www.gate-2023.in is also equal to RTT. \nThe HTML file associated with the URL is small enough to have negligible transmission time and \nnegligible rendering time by your web browser, which references 10 equally small objects on the same \nweb server. \n \nWhich of the following statements is/are CORRECT about the minimum elapsed time between clicking \non the URL and your browser fully rendering it? \n \n[Computer Network & Transport Layer] \n \n(A) 7 RTTs, in case of non-persistent HTTP with 5 parallel TCP connections. \n \n(B) 5 RTTs, in case of persistent HTTP with pipelining. \n \n(C) 9 RTTs, in case of non-persistent HTTP with 5 parallel TCP connections. \n \n(D) 6 RTTs, in case of persistent HTTP with pipelining. \n (C), (D) \nSol.\n \nCase I : \n \nPersistent HTTP :\n TCP connection is established once and multiple files are transmitted in single \nconnection. \n \nPipelined :\n New HTTP request can be sent to server without receiving acknowledgement of previous. \n \na client request a page from server, following steps are followed in order before gets all data needed : \n \n(i) \nThere\u2019s 3-tier DNS hierarchy, it is done in iterative mode taking 3 RTT. \n \n(ii) 1 RTT is used for TCP connection establishment. \n \n(iii) 1 RTT is used to fetch HTML base file. \n \n(iv) 1 RTT is for all other 10 objects. \n \nSo, total 6 RTT\u2019s are used. \n \nCase-II : \nNon persistent HTTP with 5 parallel connections : \n \nNon persistent :\n TCP connection is made for each HTTP request and closed. \n \n5-parallel connections :\n 5 objects could be sent parallel at same time.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n43\n\nSo, in this case the client have to wait for request to be fulfilled as following steps need to be completed. \n \n(i) \n3 RTT for DNS resolution. \n \n(ii) 1 RTT for TCP connection establishment. \n \n(iii) 1 RTT for fetch base HTML page. \n \n(iv) 1 RTT for TCP connection establishment. \n \n(v) \n1 RTT to get 5 objects parallely (5 still test) \n \n(vi) 1 RTT for TCP connection establishment \n \n(viii) 1 RTT for getting remaining 5 objects. \n \nIn total it takes RTT\u2019s = 9 \n \nHence, the correct options are (C) & (D). \nQuestion 43 \n \nConsider a random experiment where two fair coins are tossed. Let \nA\n be the event that denotes HEAD on \nboth the throws, \nB\n be the event that denotes HEAD on the first throw, and \nC\n be the event that denotes \nHEAD on the second throw. Which of the following statements is/are TRUE?\n[Engineering Mathematics, Probability] \n \n(A) \nA\n and \nB\n are independent. \n(B) \nA\n and \nC\n are independent. \n \n(C) \nB\n and \nC\n are independent. \n(D) \nProb( | )\nProb( )\nBC\nB\n\uf03d\n \n(C, D) \nSol.\n \nLet, \nA\n be the event that denotes HEAD on both the throws.\nLet, \nB\n be the event that denotes HEAD on the first throw.\nLet, \nC\n be the event that denotes HEAD on the second throw.\nFor, Event \nA\n (Head on both coins), only one case is feasible which is HH.\n\uf05c\n \n1\n( )\n4\nP A\n \uf03d\nFor, Event \nB\n (Head on first coins), only two cases are feasible which is HH, HT.\n\uf05c\n \n1\n( )\n2\nP B\n \uf03d\nFor, Event \nC\n (Head on second coins), only one case is feasible which is HH, TH.\n\uf05c\n \n1\n( )\n2\nP C\n \uf03d\nNOTE : \nTwo or more events are said to be independent, when the occurrence of one event does not \naffect the occurrence of other event.\nIn case of Independent Events : \n(\n)\n( ). ( )\nP A\nB\nP A P B\n\uf03d\n\nLet us check options one by one :\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n44\n\nOption A : A and B are independent.\nSo, this will be true only when \n(\n)\n( ). ( )\nP A\nB\nP A P B\n\uf03d\n\nHere \nA\nB\nwill have those cases having Head on first coin.\n1\n(\n)\n2\nP A\nB\n \uf03d\n\n1\n( )\n4\nP A\n \uf03d\n1\n( )\n2\nP B\n \uf03d\n1\n( ). ( )\n8\nP A P B\n \uf03d\nClearly, \n\uf028\n\uf029\n( ). ( )\nP A\nB\nP A P B\n\uf0b9\n. So, \nOption A is FALSE.\nOption B : \nA & C are independent.\nSo, this will be true only when \n(\n)\n( ). ( )\nP A\nC\nP A P C\n\uf0c7\n\uf03d\nHere \nA\nC\n\uf0c7\n will have those cases having Head on second coin.\n(\n)\n1/ 2\nP A\nC\n\uf0c7\n\uf03d\n1\n( )\n4\nP A\n \uf03d\n( )\n1/ 2\nP C\n \uf03d\n( ). ( )\n1/8\nP A P C\n \uf03d\nClearly, \n(\n)\n( ). ( )\nP A\nC\nP A P C\n\uf0c7\n\uf0b9\n.So, option B is False.\nOption C :\n \nB\n & \nC\n are independent\nSo, this will be true only when \n(\n)\n( ). ( )\nP B\nC\nP B P C\n\uf0c7\n\uf03d\nHere \nB\nC\n\uf0c7\n will be have those cases having head on both coin.\n(\n)\n1/ 4\nP B\nC\n\uf0c7\n\uf03d\n( )\n1/ 2\nP B\n \uf03d\n( )\n1/ 2\nP C\n \uf03d\n( ). ( )\n1/ 4\nP B P C\n \uf03d\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n45\n\nClearly, \n(\n)\n( ). ( ).\nP B\nC\nP B P C\n\uf0c7\n\uf03d\n So, option C is TRUE.\nOption D \n : \n(\n/\n)\n( )\nP B C\nP B\n\uf03d\n(\n/\n)\n(\n) /\n( )\nP B C\nP B\nC\nP C\n\uf03d\n\uf0c7\n(\n)\n1/ 4\nP B\nC\n\uf0c7\n\uf03d\n [See calculation in Option C]\n( )\n1/ 2\nP C\n \uf03d\n(B/\n)\n(1/ 4) / (1/ 2)\n2/ 4\n1/ 2\nP\nC\n \uf03d\n\uf03d\n\uf03d\n( )\n1/ 2\nP B\n \uf03d\nClearly, \n(\n/\n)\n( ).\nP B C\nP B\n\uf03d\n So option D is True\nHence, the correct options are (C) and (D).",
+ "question_text": "Question 38\nLet U = {1, 2,...,\nn\n}, where \nn\n is a large positive integer \nU\n with \nA\nB\nk\n\uf03d\n\uf03d\n and \nA\nB\n\uf0c7\n\uf03d\uf066\n. We say that a\npermutation of \nU\n separates \nA\n from \nB\n if one of the following is true. \n \n- All members of \nA\n appear in the permutation before any of the members of \nB\n. \n \n- All members of \nB\n appear in the permutation before any of the members of \nA\n.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n39\n\nHow many permutations of \nU\n separate \nA\n from \nB\n? \n \n [Discrete Mathematics, Combinatorics]\nn\nn\nk\nk\n\uf0e6\n\uf0f6\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n(A) \n!\nn\n \n(B) \n(\n2 )!\n2\n\nn\nn\nk\nk\nk\n\uf0e6\n\uf0f6\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nn\nn\nk\nk\nk\n\uf0e6\n\uf0f6\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n2\n(\n2 )!( !)\n2\n2\n2\n(\n2 )!( !)\n2\n(C)\n(D)\n",
+ "answer_text": "(D)\n (A), (D) \nSol.\n \nThe symmetric difference is similar to EXOR operation in digital logic. \n \nNow left check it for following properties : \n \n1. \nClosure property : Operator \n\uf044\n is defined as \n \n \n(\n)\n(\n)\n\uf044\uf03d\n\uf02d\n\uf0c8\n\uf02d\nA B\nA\nB\nB\nA\n(\n)\n(\n)\n\uf03d\n\uf0c8\n\uf02d\n\uf0c7\nA\nB\nA\nB\n2\n \nX\n \n is power set of \nX\n , so it contains all subset of \nX\n .\n\nSo, \n2\n,\n2\nX\nX\nA B\nA B\n\uf044\uf0ce\n\uf022\n\uf0ce\n.\n2. \nAssociativity : It\u2019s similar to XOR operation which is associative always, followed\n3. \nIdentity : \n2\n\uf0ce\nX\nC\n is identity element.\nSo, \n\uf044\n\uf03d\n\uf044\uf03d\nA C\nC A\nA\n for \n2\n\uf0ce\nX\nC\n \n \n \n(\n)\n(\n)\n\uf044\n\uf03d\n\uf0c8\n\uf02d\n\uf0c7\n\uf03d\nA C\nA\nC\nA\nC\nA\n which is possible when \n\uf03d\uf046\nC\n.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n42\n\nSo, identity exists. \n \n4. \nInverse : \n\uf044\n\uf03d\n\uf044\n\uf03d\uf046\nA B\nB A\nthen \n\uf044\nA B\n are inverse\n\uf066\n each option given \n,\n2\n\uf0ce\nX\nA B\n.\nSo, \n(\n)\n(\n)\n\uf0c8\n\uf02d\n\uf0c7\n\uf03d\uf046\nA\nB\nA\nB\nIt\u2019s possible \n(\n)\n(\n)\n\uf0c8\n\uf03d\n\uf0c7\nA\nB\nA\nB\nIf \n\uf03d\nA\nB\n then its possible.\nHence, every element of \n2\n \nX\n \n is it\u2019s own inverse and \nH\n is a group. \n \nHence, the correct options are (A) & (D). \nQuestion 42 \n \nSuppose in a web browser, you click on the www.gate-2023.in URL. The browser cache is empty. The IP \naddress for this URL is not cached in your local host, so a DNS lookup is triggered (by the local DNS \nserver deployed on your local host) over the 3-tier DNS hierarchy in an iterative mode. No resource \nrecords are cached anywhere across all DNS servers. \n \nLet RTT denote the round trip time between your local host and DNS servers in the DNS hierarchy. The \nround trip time between the local host and the web server hosting www.gate-2023.in is also equal to RTT. \nThe HTML file associated with the URL is small enough to have negligible transmission time and \nnegligible rendering time by your web browser, which references 10 equally small objects on the same \nweb server. \n \nWhich of the following statements is/are CORRECT about the minimum elapsed time between clicking \non the URL and your browser fully rendering it? \n \n[Computer Network & Transport Layer] \n \n(A) 7 RTTs, in case of non-persistent HTTP with 5 parallel TCP connections. \n \n(B) 5 RTTs, in case of persistent HTTP with pipelining. \n \n(C) 9 RTTs, in case of non-persistent HTTP with 5 parallel TCP connections. \n \n(D) 6 RTTs, in case of persistent HTTP with pipelining. \n (C), (D) \nSol.\n \nCase I : \n \nPersistent HTTP :\n TCP connection is established once and multiple files are transmitted in single \nconnection. \n \nPipelined :\n New HTTP request can be sent to server without receiving acknowledgement of previous. \n \na client request a page from server, following steps are followed in order before gets all data needed : \n \n(i) \nThere\u2019s 3-tier DNS hierarchy, it is done in iterative mode taking 3 RTT. \n \n(ii) 1 RTT is used for TCP connection establishment. \n \n(iii) 1 RTT is used to fetch HTML base file. \n \n(iv) 1 RTT is for all other 10 objects. \n \nSo, total 6 RTT\u2019s are used. \n \nCase-II : \nNon persistent HTTP with 5 parallel connections : \n \nNon persistent :\n TCP connection is made for each HTTP request and closed. \n \n5-parallel connections :\n 5 objects could be sent parallel at same time.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n43\n\nSo, in this case the client have to wait for request to be fulfilled as following steps need to be completed. \n \n(i) \n3 RTT for DNS resolution. \n \n(ii) 1 RTT for TCP connection establishment. \n \n(iii) 1 RTT for fetch base HTML page. \n \n(iv) 1 RTT for TCP connection establishment. \n \n(v) \n1 RTT to get 5 objects parallely (5 still test) \n \n(vi) 1 RTT for TCP connection establishment \n \n(viii) 1 RTT for getting remaining 5 objects. \n \nIn total it takes RTT\u2019s = 9 \n \nHence, the correct options are (C) & (D). \nQuestion 43 \n \nConsider a random experiment where two fair coins are tossed. Let \nA\n be the event that denotes HEAD on \nboth the throws, \nB\n be the event that denotes HEAD on the first throw, and \nC\n be the event that denotes \nHEAD on the second throw. Which of the following statements is/are TRUE?\n[Engineering Mathematics, Probability] \n \n(A) \nA\n and \nB\n are independent. \n(B) \nA\n and \nC\n are independent. \n \n(C) \nB\n and \nC\n are independent. \n(D) \nProb( | )\nProb( )\nBC\nB\n\uf03d\n \n(C, D) \nSol.\n \nLet, \nA\n be the event that denotes HEAD on both the throws.\nLet, \nB\n be the event that denotes HEAD on the first throw.\nLet, \nC\n be the event that denotes HEAD on the second throw.\nFor, Event \nA\n (Head on both coins), only one case is feasible which is HH.\n\uf05c\n \n1\n( )\n4\nP A\n \uf03d\nFor, Event \nB\n (Head on first coins), only two cases are feasible which is HH, HT.\n\uf05c\n \n1\n( )\n2\nP B\n \uf03d\nFor, Event \nC\n (Head on second coins), only one case is feasible which is HH, TH.\n\uf05c\n \n1\n( )\n2\nP C\n \uf03d\nNOTE : \nTwo or more events are said to be independent, when the occurrence of one event does not \naffect the occurrence of other event.\nIn case of Independent Events : \n(\n)\n( ). ( )\nP A\nB\nP A P B\n\uf03d\n\nLet us check options one by one :\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n44\n\nOption A : A and B are independent.\nSo, this will be true only when \n(\n)\n( ). ( )\nP A\nB\nP A P B\n\uf03d\n\nHere \nA\nB\nwill have those cases having Head on first coin.\n1\n(\n)\n2\nP A\nB\n \uf03d\n\n1\n( )\n4\nP A\n \uf03d\n1\n( )\n2\nP B\n \uf03d\n1\n( ). ( )\n8\nP A P B\n \uf03d\nClearly, \n\uf028\n\uf029\n( ). ( )\nP A\nB\nP A P B\n\uf0b9\n. So, \nOption A is FALSE.\nOption B : \nA & C are independent.\nSo, this will be true only when \n(\n)\n( ). ( )\nP A\nC\nP A P C\n\uf0c7\n\uf03d\nHere \nA\nC\n\uf0c7\n will have those cases having Head on second coin.\n(\n)\n1/ 2\nP A\nC\n\uf0c7\n\uf03d\n1\n( )\n4\nP A\n \uf03d\n( )\n1/ 2\nP C\n \uf03d\n( ). ( )\n1/8\nP A P C\n \uf03d\nClearly, \n(\n)\n( ). ( )\nP A\nC\nP A P C\n\uf0c7\n\uf0b9\n.So, option B is False.\nOption C :\n \nB\n & \nC\n are independent\nSo, this will be true only when \n(\n)\n( ). ( )\nP B\nC\nP B P C\n\uf0c7\n\uf03d\nHere \nB\nC\n\uf0c7\n will be have those cases having head on both coin.\n(\n)\n1/ 4\nP B\nC\n\uf0c7\n\uf03d\n( )\n1/ 2\nP B\n \uf03d\n( )\n1/ 2\nP C\n \uf03d\n( ). ( )\n1/ 4\nP B P C\n \uf03d\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n45\n\nClearly, \n(\n)\n( ). ( ).\nP B\nC\nP B P C\n\uf0c7\n\uf03d\n So, option C is TRUE.\nOption D \n : \n(\n/\n)\n( )\nP B C\nP B\n\uf03d\n(\n/\n)\n(\n) /\n( )\nP B C\nP B\nC\nP C\n\uf03d\n\uf0c7\n(\n)\n1/ 4\nP B\nC\n\uf0c7\n\uf03d\n [See calculation in Option C]\n( )\n1/ 2\nP C\n \uf03d\n(B/\n)\n(1/ 4) / (1/ 2)\n2/ 4\n1/ 2\nP\nC\n \uf03d\n\uf03d\n\uf03d\n( )\n1/ 2\nP B\n \uf03d\nClearly, \n(\n/\n)\n( ).\nP B C\nP B\n\uf03d\n So option D is True\nHence, the correct options are (C) and (D).",
+ "explanation_text": "Sol.\n \n\uf07b\n\uf07d\n2\n1,2,3,4,5,6\n1000\nU\nn\nn\n\uf03d\n\uf03e\n\n,\nA\nU B\nU\n\uf0cd\n\uf0cd\n and \nA\nB\nK\n\uf03d\n\uf03d\nA\nB\n\uf0c7\n\uf03d\uf066\nCase 1 : \nIf all element of \nA\n appear before the element of \nB\n then number of permutation\n2\n(\n2 )!\n!\n!\nK\nc\nn\nn\nK\nK\nK\n\uf02a\n\uf02d\n\uf02a\n\uf02a\n\n2\n(\n2\n)! (\n!)\nK\nc\nn\nn\nK\nK\n\uf02d\n\n2\nCase 2 : \nIf all element of \nB\n appears before the elements of \nA\n then number of permutation\n2\n(\n2 )!\n!\n!\nK\nc\nn\nn\nK\nK\nK\n\uf02a\n\uf02d\n\uf02a\n\uf02a\n\n2\n(\n2\n)! (\n!)\nK\nc\nn\nn\nK\nK\n\uf02d\n\n2\nTotal permutation\nCase-1 + Case-2\n2\n2\n2\n2\n(\n2\n)! (\n!)\n(\n2\n)! (\n!)\nK\nK\nc\nc\nn\nn\nK\nK\nn\nn\nK\nK\n\uf02d\n\uf02a\n\uf02b\n\uf02d\n\uf02a\n\nn\nn\nK\nK\nK\n\uf0e6\n\uf0f6\n\uf02d\n\uf02a\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n2\n2\n(\n2\n)! (\n!)\n2\n\nHence, the correct option is (D).\n \n \nQuestion 39 \n \nLet \nf\n : \nA\nB\n\uf0ae\n be an onto (or surjective) function, where \nA\n and \nB\n are nonempty sets. Define an equivalence \nrelation \n\u223c\n on the set \nA\n as \n \n2\n~\na\na\n if \n1\n2\n(\n)\n(\n)\nf a\nf a\n\uf03d\n,\nWhere \n1\n2\n,\na a\nA\n\uf0ce\n. Let \n{[ ]:\n}\nx\nx\nA\n\uf065\uf03d\n\uf0ce\n be the set of all the equivalence classes under \n\u223c\n. Define a new\nmapping \n:\nF\nB\n\uf065\uf0ae\n as \n \n(\n)\n( )\nF x\nf x\n\uf03d\n, for all the equivalence classes [\nx\n] in \n\uf065\n.\nWhich of the following statements is/are TRUE?\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n40\n\n[Discrete Mathematics & Graph theory, Set theory and Algebra] \n \n(A) \nF\n is NOT well-defined. \n(B) \nF\n is an onto (or surjective) function. \n \n(C) \nF\n is a one-to-one (or injective) function. \n(D) \nF\n is a bijective function. \nAns. (B), (C), (D) \nSol.\n \nThe equivalence relation on set \nA\n is defined as :\n1\n2\n~\na\na\n if \n1\n2\n( )\n(\n)\n\uf03d\nf a\nf a\nWhere \n1\n2\n,\na a\n \nEA\n .\nConsider \n,\n.........\ni\ni i\na bc\nEA\n and \n, ..........\n\uf061\uf02c\uf062\nr\nEB\n and the mapping \n3\na\n :\n1\n2\n3\n,\n,\n.......\n\uf0ae\uf061\n\uf0ae\uf061\n\uf0ae\uf061\n\uf0ae\uf061\nn\na\na\na\na\nSimilarity,\n1\n2\n3\n,\n,\n.......\n\uf0ae\uf062\n\uf0ae\uf062\n\uf0ae\n\uf0ae\uf062\nn\nb\nb\nb\nb\n and so on\u2026\u2026\u2026.\nAccording to equivalent, equivalent loss is :\n1\n2\n3\n[ ] [\n] [ ] .......... [\n]\n\uf03d\n\uf03d\n\uf03d\n\uf03d\nm\na\na\na\na\n1\n2\n3\n[ ] [ ] [ ]\n.......... [ ]\n\uf03d\n\uf03d\n\uf03d\n\uf03d\nn\nb\nb\nb\nb\n \u2026\u2026\u2026and so on.\nSo, set of equivalence classes under relation is :\n1\n1\n1\n{[ ],[ ],[ ]\n\uf065\uf03d\na\nb\nc\n \u2026..}\nNow, given new mapping \n\uf03d\uf065\uf0ae\nF\nB\n as : \n \n([ ])\n( )\n\uf03d\nF x\nF x\n for all \n[ ]\nx\n \n\uf065\nE\nIt means mapping will be :\n1\n1\n1\n,\n,\n\uf0ae\uf061\n\uf0ae\uf062\n\uf0ae\na\nb\nc\nr\n \u2026\u2026\u2026\u2026\u2026.and so on.\nSince, all distinct \n1\n1\n1\n, , ...............\na b c\nmaps to different element of set \nB\n . SO \nF\n is injective.\nWe\u2019ve considered \n1\n1\n1\n{ , , ......}\na b c\n as leaders of their equivalent class.\nWe can also consider \n2\n2\n2\n{ ,\n,\n......}\na b c\nAlso, its cleared from mapping of \nF\n that all the elements of set \nB\n are \n \nSo, \nF\n is subjective. \n \nSince \nF\n is both injective and subjective so \nF\n is bijective. \n \nAlso, we con observe that is well-defined function since its bijective. \n \nHence, the correct options are (B), (C), (D). \nQuestion 40 \n \nSuppose you are asked to design a new reliable byte-stream transport protocol like TCP. This protocol, \nnamed myTCP, runs over a 100 Mbps network with Round Trip Time of 150 milliseconds and the \nmaximum segment lifetime of 2 minutes. \n \nWhich of the following is/are valid lengths of the Sequence Number field in the myTCP header?\n[Computer Network, Transport Layer]\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n41\n\n(A) 30 bits \n(B) 32 bits \n \n(C) 34 bits \n(D) 36 bits \nAns. (B), (C) (D) \nSol.\n \nGiven bandwidth (BW) = 100 Mbps\nSo, in 1 second we can send \n6\n100 10\n\uf0b4\n bits\n3\n125 10\n\uf03d\n\uf0b4\nB\n\nIn 120 seconds\n3\n120 125 10\n\uf03d\n\uf0b4\n\uf0b4\nB\n5\n15000 10\n\uf03d\n\uf0b4\nB\nSince n lifetime of 120 seconds \n8\n15 10\n\uf0b4\n bytes are generated, so\n8\n2\nlog (15 10 )\n\uf03d\n\uf0b4\nSequence number bits\n30.48\n\uf0b3\n \n \n31\n\uf0b3\n bits \n \nHence, the correct options are (B), (C) & (D). \nQuestion 41\nLet \nX \nbe a set \n2\n \nX\n \n \nand \n \ndenote the powerset of \nX\n.\nDefine a binary operation \n\uf044\n on \n2\n \nX\n \n as follows : \n \n \n(\n)\n(\n).\nA B\nA\nB\nB\nA\n\uf044\uf03d\n\uf02d\n\uf0c8\n\uf02d\nLet \n(2 , ).\nX\nH\n \uf03d\n\uf044\n Which of the following statements about \nH\n is/are correct?\n[Discrete Mathematics Set theory & Algebra] \n \n(A) \nH\n is a group. \n \n(B) Every element in \nH\n has an inverse, but \nH\n is NOT a group. \n \n(C) For every \n2 ,\nX\nA\n\uf0ce\n the inverse of \nA\n is the complement of \nA\n.\n(D) For every \n2 ,\nX\nA\n\uf0ce\n the inverse of \nA\n is \nA\n."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/38/exp.webp b/frontend/public/assets/gate/cs/questions/2023/38/exp.webp
new file mode 100644
index 0000000..1e74e25
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/38/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/38/q.webp b/frontend/public/assets/gate/cs/questions/2023/38/q.webp
new file mode 100644
index 0000000..a4f83a6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/38/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/44/data.json b/frontend/public/assets/gate/cs/questions/2023/44/data.json
new file mode 100644
index 0000000..f8a7680
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/44/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "44",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "(A), (D) \nSol.\n \nAnalysing function 1 first, we observe the number of times inner loop run is halved every iteration\nSo, Number of times \n1\n......\n3\n4\n2\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\nn\nn\nn\nn\nInner loop runs \n\uf0f7\n\uf0f8\n\uf0f6\n\uf0e7\n\uf0e8\n\uf0e6\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf03d\nn\nn\nn\nA\n1\n......\n3\n1\n4\n1\n2\n1\n1\n)\n(\nSay, it takes p timer, so\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n46\n\n\uf0ec\n\uf0fc\np\n\uf0f7\uf0f8\n\uf0f6\n\uf0e7\uf0e8\n\uf0e6\n\uf02d\n\uf03d\n2\n1\n1\n)\n(\n\uf0ef\n\uf0ef\n\uf0ed\n\uf0ef\n\uf0ef\n\uf0fd\nn\nn\nA\n\n2\n1\n1\n\uf0ef\n\uf0ef\n\uf0ee\n\uf0ef\n\uf0ef\n\uf0fe\n\uf02d\np\nSince, for large p, we can say \n1\n2\n1\n1\n\uf0bb\n\uf0f7\n\uf0f8\n\uf0f6\n\uf0e7\n\uf0e8\n\uf0e6\n\uf02d\n\nSo, \nn\nn\nn\nA\n2\n2\n1\n)\n(\n\uf03d\n\uf03d\nSo, \n)\n(\n0\n)\n(\n1\nn\nn\nf\n\uf03d\nNow, Function 2 runs for 100 n times. \n \nSo, \n)\n100\n(\n0\n)\n(\n2\nn\nn\nf\n\uf03d\n)\n(\n0\n n\n\uf03d\nSo, \n))\n(\n(\n)\n(\n2\n1\nn\nf\nn\nf\n\uf071\n\uf0ce\nAlso, \n))\n(\n(\n0\n)\n(\n2\n1\nn\nf\nn\nf\n\uf0ce\n is true.\nHence, the correct options are (A) & (D). \nQuestion 45 \n \nLet \nG\n be a simple, finite, undirected graph with vertex set \n1\n{ ,\n,\n}.\nn\nv\nv\nLet \n( )\nG\n\uf044\n denote the maximum\ndegree of \nG\n and let \n{1,2,\n}\n\uf03d\ndenote the set of all possible colors. Color the vertices of \nG\n using the\nfollowing greedy strategy : \n[Discrete Mathematics, Graph theory] \n \nfor \n1,\n,\ni\nn\n\uf03d\n\ncolor \n( )\nmin{\n:no neighbour of is colored }\ni\ni\nv\nj\nv\nj\n\uf0ac\n\uf0ce\n\nWhich of the following statements is/are TRUE? \n \n(A) This procedure results in a proper vertex coloring of \nG\n. \n \n(B) The number of colors used is at most \n( ) 1.\nG\n\uf044\n\uf02b\n(C) The number of colors used is at most \n( ).\nG\n\uf044\n(D) The number of colors used is equal to the chromatic number of \nG\n. \n (A), (B) \nSol. \nFor Option (A) :\n Its, true as\n\u201cColor \n( )\ni\nV\n \n\uf0ac\n min < \nJ\nN\n\uf0ce\n = No neighbor of \ni\nV\n is colored \nJ \n>\u201d\nSo, it ensures proper coloring. \n \nFor Option (B) :\n We can take example of a cycle of length 3. \n \nHere, \n2\n\uf03d\n\uf044\nG\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n47\n\nBut we need 3 colours to color it also, number of neighbor\u2019s can\u2019t be more than the degree, i.e . \nG\n\uf044\n.\nSo, at most \n1\n\uf02b\n\uf044\nG\n colours needed.\nThis option is true. \n \nFor Option (C) \nIt\u2019s False as we have explained above. \n \nFor Option (D)\n It is not always the case as sometimes we might see that greedy coloring might not be \ngiving optimal result. Consider example.\nUses 3 color and\nUses 3 color \n \nWhen coloured greedily in order \n)\n.......\n,\n(\n6\n2\n1\nv\nv\nv\n. 90, number of color used \n\uf0b9\nChromatic number of graph\nHence, the correct options are (A) & (B). \nQuestion 46\nLet \n{1,2,3}.\nU\n \uf03d\n Let \n2\nU\n \n denote the powerset of \nU\n. Consider an undirected graph \nG\n whose vertex set is\nU\n For any \n,\n2 ,( , )\nU\nA B\nA B\n\uf0ce\n is an edge in \nG\n if and only if (i) \n,\nA\nB\n\uf0b9\nand (ii) either \nA\nB\n\uf0cd\n or \n.\nB\nA\n\uf0cd\n For\n2 .\nany vertex \nA\n in \nG\n, the set of all possible orderings in which the vertices of \nG\n can be visited in a Breadth \nFirst Search (BFS) starting from \nA\n is denoted by \n( ).\nB A\nIf \n\uf066\n denotes the empty set, then the cardinality of \n( )\nB\n \uf066\n is _______.\n[Discrete Mathematics, Graph theory]\n \n 5040 \nSol.\n \nHere, given that \nU\n \uf03d\n <1, 2, 3>\nVertex set \n\uf03d\n Power set of \n2\nU\nU\n \uf03d\n\uf03d\n{\n\uf066\n, <1>, <2>, <3>, <1,2>, <1,3>, <2,3>, <1,2,3>}\nSo, number of vertices \n8\n\uf03d\n \n \nNow, there\u2019s edge between A and B if either of them is proper subset of another. \n \nSince, \n\uf066\n is proper subset of all other vertices except itself, so its\u2019 connected to all 7 vertices. Since it can\nbe visited in any order.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n48\n\n1,3\n2,3\n1,2\n1,2,3\n3\n2\n1\nSo, cardinality of B\n7!\n040\n( )\n5\n\uf03d\n\uf03d\n\uf066\nHence, the correct answer is 5040. \nQuestion 47 \n \nConsider the following two-dimensional array D in the C programming language, which is stored in row-\nmajor order : \n \nint D[128][128]; \n \nDemand paging is used for allocating memory and each physical page frame holds 512 elements of the \narray D. The Least Recently Used (LRU) page-replacement policy is used by the operating system. A total \nof 30 physical page frames are allocated to a process which executes the following code snippet : \n \nfor (int \ni \n= 0; \ni\n < 128; \ni\n++) \n \n for (int \nj\n = 0; \nj\n < 128; j++) \n \n \n \nD\n[\nj\n][\ni\n] *= 10; \n \nThe number of page faults generated during the execution of this code snippet is \n_______.\n[Operating System, Memory management Virtual Memory]\n \n 4096 \nSol.\n \nGiven array D[128] [123] is stored in Row \u2013 major Order. \n \nNumber of physical frames available = 30 \n \nNumber of elements in 1 frame = 512\n128\n123\n\uf03d\n\uf0b4\n\uf03d\nD\n.\nSo, number of pages to accommodate all element of array \n32\n512\nSince we need 32 frames and were given only 30 so, collision will occur.\nAlso number of rows per frame \n4\n128\n512\n \uf03d\n\uf03d\nSo, in 30 frames we can per store 120 rows \n \nThus in 1\nst\n iteration, It\u2019 cause 32 page faults. \n \nFor 128 iterations it\u2019 cause \n4096\n32\n128\n\uf03d\n\uf0b4\n faults. \n \nHence, the correct answer is 4096. \nQuestion 48\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n49\n\nConsider a computer system with 57-bit virtual addressing using multi-level tree-structured page tables \nwith L levels for virtual to physical address translation. The page size is 4 KB (1 KB = 1024 B) and a page \ntable entry at any of the levels occupies 8 bytes. \n \nThe value of L is _______. \n \n [Operating System, Memory Management Virtual Memory ]\n \n 5\n 2 \nSol.\n \nHere to return female students with marks greater than 65. \n \nOutput is :\nRoll \nName Gender Marks \n2 \nAliya \nF \n70 \n3 \nAliya \nF \n80 \n \nHence, the correct answer is 2.\n \nQuestion 52 \n \nConsider a database of fixed-length records, stored as an ordered file. The database has 25,000 records, \nwith each record being 100 bytes, of which the primary key occupies 15 bytes. The data file is block-\naligned in that each data record is fully contained within a block. The database is indexed by a primary \nindex file, which is also stored as a block-aligned ordered file. The figure below depicts this indexing \nscheme.\nData File\nPrimary Key\n(15 Bytes)\nOther Fields\n(85 Bytes)\nIndex File\nBlock Anchor\nPrimary key\nBlock\nPointer\nSuppose the block size of the file system is 1024 bytes, and a pointer to a block occupies 5 bytes. The \nsystem uses binary search on the index file to search for a record with a given key. You may assume that \na binary search on an index file of \nb\n blocks takes \n2\n[log\n]\nb\n block accesses in the worst case.\nGiven a key, the number of block accesses required to identify the block in the data file that may contain \na record with the key, in the worst case, is _______.\n[Database, File Structure]\n \n 6\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n54",
+ "question_text": "Question 44 \n \nConsider functions Function 1 and Function 2 expressed in pseudocode as follows :\nFunction 1 \nFunction 2 \n while \n1\nn\n \uf03e\n do \n for \n1\ni\n \uf03d\n to \n100\n n\n\uf02a\n do \n for \n1\ni\n \uf03d\n to \nn\n do \n \n1;\nx\nx\n\uf03d\n\uf02b\n1;\nx\nx\n\uf03d\n\uf02b\n \n end for\nend for\n/2 ;\nn\nn\n\uf03d\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\nend while \n \n \nLet \n1\n( )\nf n\n and \n2\n( )\nf\nn\n denote the number of times the statement \n\"\n1\"\nx\nx\n\uf03d\n\uf02b\n is \nexecuted in \nFunction 1 \nand\nFunction 2\n, respectively. \n \nWhich of the following statements is/are TRUE?\n[Algorithm, Complexity Analysis & Asymptotic Notation] \n \n(A) \n1\n2\n( )\n(\n( ))\nf n\nf n\n\uf0ce\uf051\n \n(B) \n1\n2\n( )\n(\n( ))\nf n\no f n\n\uf0ce\n(C) \n1\n2\n( )\n(\n( ))\nf n\nf n\n\uf0ce\uf077\n \n(D) \n1\n( )\n( )\nf n\nO n\n\uf0ce",
+ "answer_text": "(A), (D) \nSol.\n \nAnalysing function 1 first, we observe the number of times inner loop run is halved every iteration\nSo, Number of times \n1\n......\n3\n4\n2\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\nn\nn\nn\nn\nInner loop runs \n\uf0f7\n\uf0f8\n\uf0f6\n\uf0e7\n\uf0e8\n\uf0e6\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf03d\nn\nn\nn\nA\n1\n......\n3\n1\n4\n1\n2\n1\n1\n)\n(\nSay, it takes p timer, so\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n46\n\n\uf0ec\n\uf0fc\np\n\uf0f7\uf0f8\n\uf0f6\n\uf0e7\uf0e8\n\uf0e6\n\uf02d\n\uf03d\n2\n1\n1\n)\n(\n\uf0ef\n\uf0ef\n\uf0ed\n\uf0ef\n\uf0ef\n\uf0fd\nn\nn\nA\n\n2\n1\n1\n\uf0ef\n\uf0ef\n\uf0ee\n\uf0ef\n\uf0ef\n\uf0fe\n\uf02d\np\nSince, for large p, we can say \n1\n2\n1\n1\n\uf0bb\n\uf0f7\n\uf0f8\n\uf0f6\n\uf0e7\n\uf0e8\n\uf0e6\n\uf02d\n\nSo, \nn\nn\nn\nA\n2\n2\n1\n)\n(\n\uf03d\n\uf03d\nSo, \n)\n(\n0\n)\n(\n1\nn\nn\nf\n\uf03d\nNow, Function 2 runs for 100 n times. \n \nSo, \n)\n100\n(\n0\n)\n(\n2\nn\nn\nf\n\uf03d\n)\n(\n0\n n\n\uf03d\nSo, \n))\n(\n(\n)\n(\n2\n1\nn\nf\nn\nf\n\uf071\n\uf0ce\nAlso, \n))\n(\n(\n0\n)\n(\n2\n1\nn\nf\nn\nf\n\uf0ce\n is true.\nHence, the correct options are (A) & (D). \nQuestion 45 \n \nLet \nG\n be a simple, finite, undirected graph with vertex set \n1\n{ ,\n,\n}.\nn\nv\nv\nLet \n( )\nG\n\uf044\n denote the maximum\ndegree of \nG\n and let \n{1,2,\n}\n\uf03d\ndenote the set of all possible colors. Color the vertices of \nG\n using the\nfollowing greedy strategy : \n[Discrete Mathematics, Graph theory] \n \nfor \n1,\n,\ni\nn\n\uf03d\n\ncolor \n( )\nmin{\n:no neighbour of is colored }\ni\ni\nv\nj\nv\nj\n\uf0ac\n\uf0ce\n\nWhich of the following statements is/are TRUE? \n \n(A) This procedure results in a proper vertex coloring of \nG\n. \n \n(B) The number of colors used is at most \n( ) 1.\nG\n\uf044\n\uf02b\n(C) The number of colors used is at most \n( ).\nG\n\uf044\n(D) The number of colors used is equal to the chromatic number of \nG\n. \n (A), (B) \nSol. \nFor Option (A) :\n Its, true as\n\u201cColor \n( )\ni\nV\n \n\uf0ac\n min < \nJ\nN\n\uf0ce\n = No neighbor of \ni\nV\n is colored \nJ \n>\u201d\nSo, it ensures proper coloring. \n \nFor Option (B) :\n We can take example of a cycle of length 3. \n \nHere, \n2\n\uf03d\n\uf044\nG\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n47\n\nBut we need 3 colours to color it also, number of neighbor\u2019s can\u2019t be more than the degree, i.e . \nG\n\uf044\n.\nSo, at most \n1\n\uf02b\n\uf044\nG\n colours needed.\nThis option is true. \n \nFor Option (C) \nIt\u2019s False as we have explained above. \n \nFor Option (D)\n It is not always the case as sometimes we might see that greedy coloring might not be \ngiving optimal result. Consider example.\nUses 3 color and\nUses 3 color \n \nWhen coloured greedily in order \n)\n.......\n,\n(\n6\n2\n1\nv\nv\nv\n. 90, number of color used \n\uf0b9\nChromatic number of graph\nHence, the correct options are (A) & (B). \nQuestion 46\nLet \n{1,2,3}.\nU\n \uf03d\n Let \n2\nU\n \n denote the powerset of \nU\n. Consider an undirected graph \nG\n whose vertex set is\nU\n For any \n,\n2 ,( , )\nU\nA B\nA B\n\uf0ce\n is an edge in \nG\n if and only if (i) \n,\nA\nB\n\uf0b9\nand (ii) either \nA\nB\n\uf0cd\n or \n.\nB\nA\n\uf0cd\n For\n2 .\nany vertex \nA\n in \nG\n, the set of all possible orderings in which the vertices of \nG\n can be visited in a Breadth \nFirst Search (BFS) starting from \nA\n is denoted by \n( ).\nB A\nIf \n\uf066\n denotes the empty set, then the cardinality of \n( )\nB\n \uf066\n is _______.\n[Discrete Mathematics, Graph theory]\n \n 5040 \nSol.\n \nHere, given that \nU\n \uf03d\n <1, 2, 3>\nVertex set \n\uf03d\n Power set of \n2\nU\nU\n \uf03d\n\uf03d\n{\n\uf066\n, <1>, <2>, <3>, <1,2>, <1,3>, <2,3>, <1,2,3>}\nSo, number of vertices \n8\n\uf03d\n \n \nNow, there\u2019s edge between A and B if either of them is proper subset of another. \n \nSince, \n\uf066\n is proper subset of all other vertices except itself, so its\u2019 connected to all 7 vertices. Since it can\nbe visited in any order.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n48\n\n1,3\n2,3\n1,2\n1,2,3\n3\n2\n1\nSo, cardinality of B\n7!\n040\n( )\n5\n\uf03d\n\uf03d\n\uf066\nHence, the correct answer is 5040. \nQuestion 47 \n \nConsider the following two-dimensional array D in the C programming language, which is stored in row-\nmajor order : \n \nint D[128][128]; \n \nDemand paging is used for allocating memory and each physical page frame holds 512 elements of the \narray D. The Least Recently Used (LRU) page-replacement policy is used by the operating system. A total \nof 30 physical page frames are allocated to a process which executes the following code snippet : \n \nfor (int \ni \n= 0; \ni\n < 128; \ni\n++) \n \n for (int \nj\n = 0; \nj\n < 128; j++) \n \n \n \nD\n[\nj\n][\ni\n] *= 10; \n \nThe number of page faults generated during the execution of this code snippet is \n_______.\n[Operating System, Memory management Virtual Memory]\n \n 4096 \nSol.\n \nGiven array D[128] [123] is stored in Row \u2013 major Order. \n \nNumber of physical frames available = 30 \n \nNumber of elements in 1 frame = 512\n128\n123\n\uf03d\n\uf0b4\n\uf03d\nD\n.\nSo, number of pages to accommodate all element of array \n32\n512\nSince we need 32 frames and were given only 30 so, collision will occur.\nAlso number of rows per frame \n4\n128\n512\n \uf03d\n\uf03d\nSo, in 30 frames we can per store 120 rows \n \nThus in 1\nst\n iteration, It\u2019 cause 32 page faults. \n \nFor 128 iterations it\u2019 cause \n4096\n32\n128\n\uf03d\n\uf0b4\n faults. \n \nHence, the correct answer is 4096. \nQuestion 48\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n49\n\nConsider a computer system with 57-bit virtual addressing using multi-level tree-structured page tables \nwith L levels for virtual to physical address translation. The page size is 4 KB (1 KB = 1024 B) and a page \ntable entry at any of the levels occupies 8 bytes. \n \nThe value of L is _______. \n \n [Operating System, Memory Management Virtual Memory ]\n \n 5\n 2 \nSol.\n \nHere to return female students with marks greater than 65. \n \nOutput is :\nRoll \nName Gender Marks \n2 \nAliya \nF \n70 \n3 \nAliya \nF \n80 \n \nHence, the correct answer is 2.\n \nQuestion 52 \n \nConsider a database of fixed-length records, stored as an ordered file. The database has 25,000 records, \nwith each record being 100 bytes, of which the primary key occupies 15 bytes. The data file is block-\naligned in that each data record is fully contained within a block. The database is indexed by a primary \nindex file, which is also stored as a block-aligned ordered file. The figure below depicts this indexing \nscheme.\nData File\nPrimary Key\n(15 Bytes)\nOther Fields\n(85 Bytes)\nIndex File\nBlock Anchor\nPrimary key\nBlock\nPointer\nSuppose the block size of the file system is 1024 bytes, and a pointer to a block occupies 5 bytes. The \nsystem uses binary search on the index file to search for a record with a given key. You may assume that \na binary search on an index file of \nb\n blocks takes \n2\n[log\n]\nb\n block accesses in the worst case.\nGiven a key, the number of block accesses required to identify the block in the data file that may contain \na record with the key, in the worst case, is _______.\n[Database, File Structure]\n \n 6\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n54",
+ "explanation_text": "Sol.\n \nVirtual address is 57 bits, page size is 4kB \nB\n2\n12\n\uf03d\n57\n2\n2\n2\n\uf03d\n\uf03d\nNumber of page \n45\n12\nPage Table Entry = 8kB\nSo, Each page can contain \n9\n2\n8\n4\n\uf03d\nB\nkB\npage entries\nSo, We need 9 bits to index page table.\nSo, number of levels \n45\n5\n9\n\uf0e9\n\uf0f9\n\uf03d\n\uf03d\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\nHence, the correct answer is 5. \nQuestion 49 \n \nConsider a sequence \na\n of elements \n0\n1\n2\n3\n4\n1,\n5,\n7,\n8,\n9,\na\na\na\na\na\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\nand \n5\n2.\na\n \uf03d\nThe following operations\nare performed on a stack S and a queue \nQ\n, both of which are initially empty. \n \nI : \npush the elements of \na\n from \n0\na\n to \n5\na\n in that order into \nS\n.\nII : enqueue the elements of a from \n0\na\n to \n5\na\n in that order into \nQ\n.\nIII : pop an element from \nS\n. \n \nIV : \ndequeue an element from \nQ\n. \n \nV : pop an element from \nS\n. \n \nVI : dequeue an element from \nQ\n. \n \nVII : dequeue an element from \nQ\n and push the same element into \nS\n. \n \nVIII : Repeat operation VII three times. \n \nIX : pop an element from \nS\n. \n \nX : pop an element from \nS\n. \n \nThe top element of \nS\n after executing the above operations is \n_______.\n[Data Structure, Stack & Queue] \nAns. 8 \nSol.\n \nGiven Elements \n0\n1\n4\n(\n,\n,.....\n)\n(1,5,7,8,9,2)\na a\na\n\uf03d\nStep \u2013 1 :\n2 \n\uf0ac\nTOS \n9 \n \n8\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n50\n\n7 \n \n5 \n \n1 \n \n \n \nStep -2 :\n1 \n3 \n7 \n8 \n9 \n2\n\uf0ad\n \nTail \n \nStep-3 :\n\uf0ad\n \nHead\n9 \n\uf0ac\nTOS \n8 \n \n7 \n \n5 \n \n1 \n \n \nStep \u2013 4 :\n5 \n7 \n8 \n9 \n2\n\uf0ad\n \nTail \n \nStep \u2013 5 :\n\uf0ad\n \nHead\n8 \n\uf0ac\nTOS \n7 \n \n5 \n \n1 \n \n \nStep \u2013 6 :\n7 \n8 \n9 \n2\n\uf0ad\n \nTail \n \nStep \u2013 7 :\n\uf0ad\n \nHead\nStep-8 :\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n51\n\nStep \u2013 9 :\n9 \n\uf0ac\nTOS \n8 \n \n7 \n \n8 \n \n7 \n \n5 \n \n1 \n \n \nStep \u2013 10 :\n8 \n\uf0ac\nTOS \n7 \n \n8 \n \n7 \n \n5 \n \n1 \n \n \n\uf05c\n \u20188\u2019 in Top of stack So answer is 8. \n \nHence, the correct option is 8. \nQuestion 50 \n \nConsider the syntax directed translation given by the following grammar and semantic rules. Here \nN\n, \nI\n, \nF\n \nand B are non-terminals. \nN\n is the starting non-terminal, and #, \n0\n and \n1\n are lexical tokens corresponding to \ninput letters \u201c#\u201d, \u201c0\u201d and \u201c1\u201d, respectively. \nX\n.\nval\n denotes the synthesized attribute (a numeric value) \nassociated with a non-terminal \nX\n. \n1\nI\n and \n1\nF\n denote occurrences of \nI\n and \nF\n on the right hand side of a\nproduction, respectively. For the tokens \n0\n and \n1\n, \n0\n.val = 0 and \n1\n.val = 1. \n \n \n#\nN\nI\nF\n\uf0ae\n \n.\n.\n.\nN val\nI val\nF val\n\uf0ae\n\uf02b\n \n \n \n1\nI\nI B\n\uf0ae\n \n1\n.\n(2 .\n)\n.\nI val\nI val\nBval\n\uf0ae\n\uf02b\nI\nB\n\uf0ae\n \n.\n.\nI val\nB val\n\uf03d\n1\nF\nBF\n\uf0ae\n \n1\n1\n.\n( .\n.\n)\n2\nF val\nB val\nF val\n\uf03d\n\uf02b\nF\nB\n\uf0ae\n \n1\n.\nB.\n2\nF val\nval\n\uf03d\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n52\n\n0\nB\n \uf0ae\n \n.\n.\nBval\nval\n\uf03d\n0\n \n \n \nB\n \uf0ae\n1\n \n.\n.\nB val\nval\n\uf03d\n1\n \n \nThe value computed by the translation scheme for the input string \n \n \n10 # 011 \n \nis _______. (Rounded off to three decimal places)\n[Compiler Design, Syntax Directed Translation] \nAns. 2.375 \nSol.\nHence, the correct answer is 2.375. \nQuestion 51 \n \nConsider the following table named Student in a relational database. The primary key of this table is \nrollNum. \n \nStudent :\nrollNum \nName \ngender \nmarks \n1 \nNaman \nM \n62 \n2 \nAliya \nF \n70 \n3 \nAliya \nF \n80 \n4 \nJames \nM \n82 \n5 \nSwati \nF \n65 \n \nThe SQL query below is executed on this database. \n \nSELECT * \n \nFROM Student \n \nWHERE gender = \u2018F\u2019 AND \n \n \nmarks > 65; \n \nThe number of rows returned by the query is _______.\n[Database, Relational Model Relational Algebra]\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n53\n\nSol.\n \nGiven database is stored as ordered file and indexed by primary index file \n \nThere\u2019re 25,000 \nrecords \n \n \n100 B \nrecords size \n \n \n15 B \nPrimary key size \n \n \n5 B \nPointer size \n \n \n1024 B \nBlock size \n \nIt\u2019s stored in unspanned organization.\n\uf0ea\n\uf03d\nsize\nRecord\n\uf0fa\n\uf0ea\uf0eb\n\uf0ea\n\uf03d\n\uf0fa\n\uf0ea\uf0eb\nsize\nBlock\n10\nB\n100\nB\n1024\n\uf03d\n\uf0fa\uf0fb\nSo, Number of records per block \n\uf0fa\uf0fb\n\uf0f9\n\uf0ea\uf0ea\n\uf0e9\nrecords\nof\nNumber\n2500\n10\n25000\n \uf03d\n\uf03d\nNumber of data blocks needed = \n\uf0fa\uf0fa\nblock\nper\nrecords\nof\nNumber\n\uf0fa\n\uf0ea\uf0eb\n\uf0ea\n1024\n\uf03d\n\uf0fa\uf0fb\n\uf0fa\n\uf0ea\uf0eb\n\uf0ea\n\uf03d\n\uf0fa\uf0fb\n\uf0fa\n\uf0ea\uf0eb\n\uf0ea\nsize\nBlock\n51\n20\n1024\n5\n15\n\uf02b\n\uf03d\n\uf02b\n\uf03d\nsize\nPointer\nsize\nkey\nprimany\nNo. of Index records per block \n\uf0fa\uf0fb\nNumber of index block needed \n50\n51\n2500\n \uf03d\n\uf0fa\uf0fa\n\uf0f9\n\uf0ea\uf0ea\n\uf0e9\n\uf03d\nApplying binary search, \n\uf0e9\n\uf0f9\n6\n)\n50\n(\nlog\n2\n\uf03d\nHence, the correct answer is 6. \nQuestion 53 \n \nConsider the language \nL\n over the alphabet {0, 1}, given below : \n \n \n{\n{0,1}*|\nL\n \uf03d\uf077\uf0ce\n\uf077\n does not contain three or more consecutive 1\u2019s}.\nThe minimum number of states in a Deterministic Finite-State Automaton (DFA) for \nL\n is _______.\n[Theory of Computation, Finite Automata] \nAns. 4 \nSol.\n \nSay L : set of strings containing 3 consecutive is. \n \n \nThe MDFA for L\n\uf0ae\nI: set of strings not containing 3 consecutive \n \nSo, no. of state remains same i.e. 4 \n \nMDFA For \n\uf0ae\nI\n\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n55\n\nHence, the correct answer is 4. \nQuestion 54 \n \nAn 8-way set associative cache of size 64 KB (1 KB = 1024 bytes) is used in a system with 32-bit address. \nThe address is sub-divided into TAG, INDEX, and BLOCK OFFSET. \n \nThe number of bits in the TAG is _______.\n[Computer organization & Architecture, Memory Organization] \nAns. 19\n6\n10\n16\n64KB\n2\n2\n2 B\nCS\nB\n\uf03d\n\uf03d\n\uf0b4\n\uf03d\nSol.\n \nGiven : \nCache Size\nSystem use 32 bit address (A) \n \nSo, TAG = A \u2013 \n)\n(\nlog\n2\n CS\n)\n(\nlog\n2\n P\n\uf02b\n)\n8\n(\nlog\n)\n2\n(\nlog\n32\n2\n16\n2\n\uf02b\n\uf02d\n\uf03d\n32 16\n3\n\uf03d\n\uf02d\n\uf02b\n= 19 \n \nHence, the correct option is 19. \nQuestion 55 \n \nThe forwarding table of a router is shown below.\nSubnet Number \nSubnet Mask\n \nInterface ID\n \n200.150.0.0\n \n255.255.0.0\n \n1 \n200.150.64.0\n \n255.255.224.0\n \n2 \n200.150.68.0\n \n255.255.255.0\n \n3 \n200.150.68.64\n \n255.255.255.224\n \n4 \nDefault \n \n0 \n \nA packet addressed to a destination address 200.150.68.118 arrives at the router. It will be forwarded to \nthe interface with ID _______.\n[Computer Network, Concept of Layering and LAN Technologies] \nAns. 3 \nSol.\n \nWe will perform AND operation between IP and Subnet mask and see it we get same subnet \u2013ID or not \nand well do longest prefix match. \n \nSo, checking subnet \u2013 4. \n \nIP \n\uf0d9\n subnet = (200.150.68.118) \n\uf0d9\n(255.255.255.224) = (200.150.68.96) \n \nSubnet ID didn\u2019t match. \n \nChecking subnet 3 \n \n(200.150.68.118) \n\uf0d9\n (255.255.255.0) = 200.150.68.0 \n \nSubnet ID matches. \n \nIf will be forwarded to 3. \n \nHence, the correct answer is 3.\n\uf071\uf071\uf071\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/44/exp.webp b/frontend/public/assets/gate/cs/questions/2023/44/exp.webp
new file mode 100644
index 0000000..56ff087
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/44/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/44/q.webp b/frontend/public/assets/gate/cs/questions/2023/44/q.webp
new file mode 100644
index 0000000..a245548
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/44/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/5/data.json b/frontend/public/assets/gate/cs/questions/2023/5/data.json
new file mode 100644
index 0000000..8d3836b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/5/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "5",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "(A) \nSol.\n \n:\n \nMethod 1 \n:\n \n \nLucas sequence \n \nPut \nn\n = 1 in option we will get\n1\n5\n1\n5\n2\n1\n2\n2\n2\nl\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf03d\n\uf03d\n1\ngiven that \n1\n1\nl\n \uf03d\nPut \n2\nn\n \uf03d\n in option we will get\n2\n2\n1\n5\n1\n5\n2\n2\nl\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n5\n2 4\n4\n\uf0e6\n\uf0f6\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e6\n\uf0f6\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n6\n2 4\n3\n\uf03d\n\n2\nGiven that \n2\n3\nl\n \uf03d\nn\nn\nn\nl\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n5\n1\n5\n2\n2\n\nHence, the correct option is (A). \n \n:\n \nMethod 2 \n:\n \n \nGiven that\n1\n2\nn\nn\nn\nL\nL\nL\n\uf02d\n\uf02d\n\uf03d\n\uf02b\n for \n3\nn\n \uf0b3\nBy replacing \n' '\nn\n by \n(\n2)\nn\n \uf02b\nwe have\n2\n1\n0\nn\nn\nn\nL\nL\nL\n\uf02b\n\uf02b\n\uf02d\n\uf02d\n\uf03d\n \n \n \n \n \n\u2026 (i)\nCharacteristic Equation for Equation (i)\n2\n1\n0\nP\nP\n\uf02d\n\uf02d\uf03d\nCharacteristic ROOT\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n12\n\n1\n5\n2\nP\n\uf0b1\n\uf03d\n\uf05c\n Homogeneous function\n1\n1\n2\n2\nn\nn\nc p\nc p\n\uf02b\nn\nn\nn\nL\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n2\n1\n5\n1\n5\n2\n2\n\u2026 (ii)\nPut \n1\nn\n \uf03d\n1\n1\n1\n1\n2\n1\n5\n1\n5\n2\n2\nL\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\u2026 (iii)\n1\n2\n1\n5\n1\n5\n1\n2\n2\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\nPut \n2\nn\n \uf03d\n2\n2\n2\n1\n2\n1\n5\n1\n5\n2\n2\nL\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\u2026 (iii)\n2\n2\n1\n2\n1\n5\n1\n5\n3\n2\n2\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\u2026 (iv)\nSolving equation (iii) and equation (iv)\n1\n1,\nc\n \uf03d\n \n2\n1\nc\n \uf03d\nn\nn\nn\nL\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n5\n1\n5\n2\n2",
+ "question_text": "Question 5 \n \nThe Lucas sequence \nL\nn\n is defined by the recurrence relation :\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n11\n\nL\nn\n = L\nn \n\u22121\n + \nL\nn \n\u2212 2\n, for \nn\n \u2265 3, \n \nwith \nL\n1\n \n= 1 and \nL\n2\n = 3. \n \nWhich one of the options given is TRUE? \n \n \n[Discrete Mathematics & Combinatorics]\nn\nn\nn\nn\nn\nL\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\nn\nL\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n(A) \n1\n5\n1\n5\n2\n2\n(B) \n1\n5\n1\n5\n2\n3\n\nn\nn\nn\nn\nn\nL\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n(C) \n1\n5\n1\n5\n2\n3\n(D) \n1\n5\n1\n5\n2\n2\nn\nL",
+ "answer_text": "(A) \nSol.\n \n:\n \nMethod 1 \n:\n \n \nLucas sequence \n \nPut \nn\n = 1 in option we will get\n1\n5\n1\n5\n2\n1\n2\n2\n2\nl\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf03d\n\uf03d\n1\ngiven that \n1\n1\nl\n \uf03d\nPut \n2\nn\n \uf03d\n in option we will get\n2\n2\n1\n5\n1\n5\n2\n2\nl\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n5\n2 4\n4\n\uf0e6\n\uf0f6\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e6\n\uf0f6\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n6\n2 4\n3\n\uf03d\n\n2\nGiven that \n2\n3\nl\n \uf03d\nn\nn\nn\nl\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n5\n1\n5\n2\n2\n\nHence, the correct option is (A). \n \n:\n \nMethod 2 \n:\n \n \nGiven that\n1\n2\nn\nn\nn\nL\nL\nL\n\uf02d\n\uf02d\n\uf03d\n\uf02b\n for \n3\nn\n \uf0b3\nBy replacing \n' '\nn\n by \n(\n2)\nn\n \uf02b\nwe have\n2\n1\n0\nn\nn\nn\nL\nL\nL\n\uf02b\n\uf02b\n\uf02d\n\uf02d\n\uf03d\n \n \n \n \n \n\u2026 (i)\nCharacteristic Equation for Equation (i)\n2\n1\n0\nP\nP\n\uf02d\n\uf02d\uf03d\nCharacteristic ROOT\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n12\n\n1\n5\n2\nP\n\uf0b1\n\uf03d\n\uf05c\n Homogeneous function\n1\n1\n2\n2\nn\nn\nc p\nc p\n\uf02b\nn\nn\nn\nL\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n2\n1\n5\n1\n5\n2\n2\n\u2026 (ii)\nPut \n1\nn\n \uf03d\n1\n1\n1\n1\n2\n1\n5\n1\n5\n2\n2\nL\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\u2026 (iii)\n1\n2\n1\n5\n1\n5\n1\n2\n2\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\nPut \n2\nn\n \uf03d\n2\n2\n2\n1\n2\n1\n5\n1\n5\n2\n2\nL\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\u2026 (iii)\n2\n2\n1\n2\n1\n5\n1\n5\n3\n2\n2\nc\nc\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\n\u2026 (iv)\nSolving equation (iii) and equation (iv)\n1\n1,\nc\n \uf03d\n \n2\n1\nc\n \uf03d\nn\nn\nn\nL\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n1\n5\n1\n5\n2\n2",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/5/q.webp b/frontend/public/assets/gate/cs/questions/2023/5/q.webp
new file mode 100644
index 0000000..76434a9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/5/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/6/data.json b/frontend/public/assets/gate/cs/questions/2023/6/data.json
new file mode 100644
index 0000000..e260c38
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2023/6/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "6",
+ "stream": "computer-science-information-technology",
+ "packet": "2023",
+ "year": "2023",
+ "type": "MCQ",
+ "key": "(C)\n \nSol.\n \nThe regular expression is: \n \nLetter (letter + digit)*. \n \nGiven :\n Grammar\nLetter \n\uf0ae\n [A-Z, a-z]\nDigit \n\uf0ae\n [0-9]\nId \n\uf0ae\n Letter (letter/digit)*\nValid Identifier should start with letter and followed by either letter or digit\nRegular expression (RE) = Letter (letter + digit)*\nA. First option is wrong because as per NFA given identifier can be start with digit.\nB. Second option is wrong because this NFA gives identifier as\nLetter (letter)* OR Letter (digit)*\nC. Third option is correct it gives correct Regular expression as per given grammar.\n\uf065\nLetter\n\uf065\n\uf065\nLetter\n\uf065\n\uf065\nDigit\n\nD. Fourth option is wrong because this NFA does not accept regular expression,\nLetter (Letter)*\nHence, the correct option is (C).\n \n \nQuestion 10 \n \nAn algorithm has to store several keys generated by an adversary in a hash table. The adversary is \nmalicious who tries to maximize the number of collisions. Let \nk\n be the number of keys, m be the number\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n16\n\nof slots in the hash table, and \nk \n> \nm\n. Which one of the following is the best hashing strategy to counteract \nthe adversary? \n \n \n \n[Data Structure, Hashing] \n \n(A) Division method, i.e., use the hash function \nh\n(\nk\n) = \nk\n mod \nm\n.\n(B) Multiplication method, i.e., use the hash function \n\uf028\n\uf029\n( )\n,\nh k\nm kA\nkA\n\uf0ea\n\uf0fa\n\uf03d\n\uf02d\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n where \nA\n is a carefully\nchosen constant. \n \n(C) Universal hashing method \n \n(D) If \nk\n is a prime number, use Division method. Otherwise, use Multiplication method. \n\n \n(C)\n \nSol.\n \nHere, the attacker is trying to maximize collision and to minimize it we have to use a method that randomly \nassigns keys to the slots. So option \u201cC\u201d- Universal hasting is best. \n \nThe only effective way to improve the situation is to choose the Hash function Randomly in such a way \nthat is independent of the key that are actually going to be stored this approach is called universal hashing.\nHence, the correct option is (C).\n \nQuestion 11 \n(Digital Electronics) \n \nThe output of a 2-input multiplexer is connected back to one of its inputs as shown in the figure.\nMultiplexer\n0\nQ\n1\nS\nMatch the functional equivalence of this circuit to one of the following options\n[Digital Logic, Combinational Circuits] \n \n(A) D Flip-flop \n(B) D Latch \n \n(C) Half-adder \n(D) Demultiplexer \n\n \n(B)\n \nSol.\n \n:\n \nMethod 1 \n:\n \n \nThe output equation of above \n1\n2\n\uf0b4\n mux is:\n1\n0\n.\nI\nS\nI\nS\nV\n\uf02b\n\uf03d\nSo, when S = 0\nQ\nI\nY\n\uf03d\n\uf03d\n0\n, the previous state value\nWhen S = 1 \n \n1\nI\nY\n \uf03d\n, (Output = Input)\nThus, it is D, Latch \n \nHence, the correct option is (B). \n \n:\n \nMethod 2 \n:\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n17\n\n1\nn\nn\nn\nQ\nSQ\nSQ\n\uf02b\n\uf03d\n\uf02b\n1\n(\n)\nn\nn\nQ\nQ S\nS\n\uf02b\n\uf03d\n\uf02b\n1\nn\nn\nQ\nQ\n\uf02b\n\uf03d\nOutput is same as the input \n1\nn\nQ\n \uf02b\n is generated after delay.\nHence, the correct option is (B). \nQuestion 12 \n \nWhich one or more of the following need to be saved on a context switch from one thread (T1) of a process \nto another thread (T2) of the same process? \n[Operating System, Memory Management Virtual table] \n \n(A) Page table base register \n(B) Stack pointer \n \n(C) Program counter \n(D) General purpose registers \n\n \n(B), (C), (D)\n \nSol.\n \n(A) Page Table Base Register holds base address of page table for currently executing thread since,\nthread switch between same process so there\u2019s no need of updation: \n \n(B) Each thread has its own stack. So stack painter needs to be saved. \n \n(C) PC register contains address of next instruction to be executed by current thread. So it needs to be\nsaved when switch occurs. \n \n(D) These registers are used to store temporary data during thread execution and needs to be saved before\nthread switches. \n \nHence, the correct options are (B), (C) & (D). \nQuestion 13 \n \nWhich one or more of the following options guarantee that a computer system will transition from user \nmode to kernel mode? \n[Operating System, Process Management I] \n \n(A) Function Call \n(B) malloc Call \n \n(C) Page Fault \n(D) System Call \n\n \n(C), (D)\n \nSol.\n \n\uf0b7\n \nFunction calls and malloc calls do not necessarily result in transition to kernel mode. \n\uf0b7\n \nSystem call guarantees that computer system will transition from user mode to kernel mode as using \nsystem calls a user requests services from OS and transition from user mode to kernel mode. \n\uf0b7\n \nPage fault occures when program requests access of page not currently in memory (Physical \nmemory) so, OS needs to handle page fault and may need to allocate physical memory. \n \nHence, the correct options are (C) & (D). \nQuestion 14 \n \nWhich of the following statements is/are CORRECT?\n[Theory of Computation, Properties of Languages]\n \n \n(A) The intersection of two regular languages is regular. \n \n(B) The intersection of two context-free languages is context-free. \n \n(C) The intersection of two recursive languages is recursive.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n18\n\n(D) The intersection of two recursively enumerable languages is recursively enumerable. \n\n \n(A), (C), (D)\n \nSol.\n \nIntersection options are closed under Regular Language, Recursive Language and Recursively \nEnumerable Language. \n \nFor Context free Language\nLet \n0\n,\n/\n1\n\uf0b3\n\uf03d\nn\nm\nc\nb\na\nL\nm\nn\nn\n and \n0\n,\n/\n2\n\uf0b3\n\uf03d\nn\nm\nc\nb\na\nL\nn\nn\nm\nBoth \n1\nL\n and \n2\nL\n are CFL languages.\nBut \n0\n/\n2\n1\n\uf0b3\n\uf03d\n\uf0c7\nn\nc\nb\na\nL\nL\nn\nn\nn\nis a non-CFL language\nSo (B) is False \n \nHence, the correct options are (A), (C) & (D). \nQuestion 15 \n \nWhich of the following statements is/are INCORRECT about the OSPF (Open Shortest Path First) routing \nprotocol used in the Internet? \n \n \n[Algorithm, Greedy Algorithm] \n \n(A) OSPF implements Bellman-Ford algorithm to find shortest paths. \n \n(B) OSPF uses Dijkstra\u2019s shortest path algorithm to implement least-cost path routing. \n \n(C) OSPF is used as an inter-domain routing protocol. \n \n(D) OSPF implements hierarchical routing. \n\n \n(A), (C)\n \nSol.\n \nOSPF uses Dijkstra\u2019s algorithm to compute the shortest path tree for each route, the cost of a route is \ncalculated by gathering link state information from available routers. \n \nAlso, OSPF is hierarchical routing protocol, using are 0 (autonomous system) at top of hierarchy. \n \nSo, A and C are False. \n \nHence, the correct options are (A) & (C). \nQuestion 16 \n \nGeetha has a conjecture about integers, which is of the form\n\uf028\n\uf029\n( )\n( , ) ,\nx P x\nyQ x y\n\uf022\n\uf0de\uf024\nwhere \nP\n is a statement about integers, and \nQ\n is a statement about pairs of integers. Which of the following \n(one or more) option(\ns\n) would imply Geetha\u2019s conjecture?\n[Discrete Mathematics, Mathematical Logic]\n \n \n(A) \n( ( ))\n( , )\nx P x\nyQ x y\n\uf024\n\uf0d9\uf022\n \n(B) \n( , )\nx yQ x y\n\uf022\uf022\n(C) \n\uf028\n\uf029\n( )\n( , )\ny x P x\nQ x y\n\uf024\uf022\n\uf0de\n \n(D) \n\uf028\n\uf029\n( )\n( , )\nx P x\nyQ x y\n\uf024\n\uf0d9\uf024\n\n \n(B), (C)\n \nSol.\n \nHere, domain is set of integers, So Elements \n \n,......}\n2,1,0,1\n,2\n,3\n{.....\n,\n\uf02d\n\uf02d\n\uf02d\nE\ny\nx\nExpression \n)}\n,\n(\n)\n(\n{\ny\nx\nQ\nx\nP\nx\nE\ny\n\uf024\n\uf0de\n\uf022\n\uf03d\nWhich says if x is P then \u2018 always exists a y such such that \nQ\n (\nx,y\n).\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n19\n\nNow, checking options. \n \nFor option (A) :\ny\nP x\nx y\nE\n\uf024\n\uf0d9\uf022\uf071\n\uf0ae\n[ ( )]\n( , )\nIs\nTrue?\nLHS\nRHS\nHere, for LHS to be true. Say there exists an \n(6)\nx\n \uf03d\n for which \n( )\n( )\np x\np c\n\uf03d\n\uf03d\n True and for all \n(6, )\ny\ny\n\uf071\nis True.\nNow, RHS : \n( )\n2( , )\np x\ny\nx y\nE\nx\nA\nB\n\uf024\n\uf03d\uf022\uf03c\n\uf0de\nA\n \uf03d\n True for say \n7,\nx\n \uf03d\n so \n(7)\np\n\uf03d\nTrue\nFor B, say there doesn\u2019t exist any y such that \n(7, )\nQ\ny\n = True. Hence \nA\nB\n\uf0de\nT\nF\n\uf0de\n is false. \n \nSo, its case of True \n\uf0de\nFalse as LHS is True and A \nRHS is False \n \nTherefore it becomes case of True \n\uf0ae\nFalse and eventually its False: \n \nFor option (B) :\ny\nx\nQ\ny\nx\n\uf0ae\n\uf022\n\uf022\n)\n,\n(\n True?\nE\nLHS\nRHS\nHere, LHS is True for all values of x and y.\nx\nP\nx\nE\n)]\n,\n(\n)]\n(\n[\n\uf024\n\uf0de\n\uf022\n\uf03d\ny\nx\nyQ\nA\nNow Ans: \nB\nNow, since, \n \n\uf03d\n\uf022\n\uf022\n)\n,\n(\ny\nx\nQ\ny\nx\nTrue.\n\uf03d\n\uf024\n)\n,\n(\ny\nx\nyQ\n True too.\nSo, For \nB\nA\n \uf0de\n \n \nA \n\uf0de\nTrue is always True. \n \nAs RHS is True. Its case of \n \nTrue \n\uf0ae\n True which is true. \n \nFor option (C) :\nE\ny\nx\nQ\nx\nP\nx\ny\n\uf0ae\n\uf0de\n\uf022\n\uf024\n)]\n,\n(\n)\n(\n[\n True?\n\uf0ae\n \nRHS\nLHS\nFor LHS to be true, there exists some y say y = 2 for which for all x which are satisfying property p \nimplies property Q (x,y)\nNow, RHS: = \n\uf0fa\uf0fb\n\uf0f9\n\uf0ea\uf0eb\n\uf0e9\n\uf024\n\uf0de\n\uf022\n\uf03d\nB\nx\nP\nx\nE\n)\n,\n(\n)\n(\ny\nx\nQ\ny\nA\n)\n,\n(\ny\nx\nQ\ny\nB\n\uf024\n\uf03d\n is always, true as there exists at least one y (we assumed y = 2) such that \n)\n2,\n(\nx\nQ\nx\n\uf022\nis\nTrue. So B is true \n \nThe case becomes \nA\nB\n\uf0de\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n20\n\nA\n \uf0de\nTrue which is true \n \nSo, L.H.S \n\uf0ae\n R.H.S. is true. \n \nFor Option (D) :\n[ ( )\n2( , )]\nTrue?\nLHS\nP x\ny\nx y\nE\nRHS\n\uf024\uf0b4\n\uf0d9\uf024\n\uf0ae\nFor LHS to be true, assume \n6\nx\n \uf03d\n for which properly \n(6)\nP\n is true and there exists a \ny\n assume \n2\ny\n \uf03d\nsuch that \n(6,2)\nQ\n is true.\nNow, RHS \n( )\n( , )\nP x\nyQ x y\nE\nVx\nA\nB\n\uf024\n\uf0e9\n\uf0f9\n\uf03d\n\uf03d\n\uf0de\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\nSay \n3\nx\n \uf03d\n and \n( )\nP x\n \uf03d\nTrue\nBut there exists no y for \n(3, )\nQ\ny\n to be true.\nHence, it becomes \nA\nB\n\uf0de\n \n \nTrue \n\uf0de\nFalse so RHS is False \n \nAlso, it becomes case of True \n\uf0ae\n False which is false. \n \nHence, the correct options are (B) & (C). \nQuestion 17 \n \nWhich one or more of the following CPU scheduling algorithms can potentially cause starvation?\n[Operating System, Process Management II] \n \n(A) First-in First-Out \n(B) Round Robin \n \n(C) Priority Scheduling \n(D) Shortest Job First \n\n \n(A), (C), (D)\n \nSol.\n \n\u2022 \nSJF and priority scheduling are prone to starvation as for SJF the shorter jobs might keep coming \nand longer burst time jobs have to keep waiting. \n \n\u2022 \nAlso, for priority scheduling the higher priority job might keep coming causing lower priority jobs \nto starve. \n \n\u2022 \nRound Robin never cause starvation as every job gets a fixed time quantum to execute, which is \nfinite and evry job get time for execution. \n \n\u2022 \nFor FCFS, in case of infinite loop like \n \n \nwhile (1); \n \n \nthen it cause starvation \n \n \nso until there\u2019s special case of a task running forever there will be no starvation. \n \nHence, the correct options are (A), (C) & (D). \nQuestion 18 \n \nLet \n3\n2\n( )\n15\n33\n36\nf x\nx\nx\nx\n\uf03d\n\uf02b\n\uf02d\n\uf02d\n be a real-valued function. Which of the following statements is/are \nTRUE? \n \n \n \n[Engineering Mathematics, Calculus] \n \n(A) \nf \n(\nx\n) does not have a local maximum. \n(B) \nf\n(\nx\n) has a local maximum. \n \n(C) \nf\n(\nx\n) does not have a local minimum. \n(D) \nf\n(\nx\n) has a local minimum\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n21\n\n \nB, D\n3\n2\n( )\n15\n33\n36\nf x\nx\nx\nx\n\uf03d\n\uf02b\n\uf02d\n\uf02d\n (A), (C)\n2\n( )\ng n\nn\n\uf03d",
+ "question_text": "Question 6 \n \nWhich one of the options given below refers to the degree (or arity) of a relation in relational database \nsystems?\n[Database, ER Model]\n \n \n(A) Number of attributes of its relation schema. \n \n \n(B) Number of tuples stored in the relation. \n \n(C) Number of entries in the relation. \n \n(D) Number of distinct domains of its relation schema. \nAns.\n \n(A)\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n13\n",
+ "answer_text": "(C)\n \nSol.\n \nThe regular expression is: \n \nLetter (letter + digit)*. \n \nGiven :\n Grammar\nLetter \n\uf0ae\n [A-Z, a-z]\nDigit \n\uf0ae\n [0-9]\nId \n\uf0ae\n Letter (letter/digit)*\nValid Identifier should start with letter and followed by either letter or digit\nRegular expression (RE) = Letter (letter + digit)*\nA. First option is wrong because as per NFA given identifier can be start with digit.\nB. Second option is wrong because this NFA gives identifier as\nLetter (letter)* OR Letter (digit)*\nC. Third option is correct it gives correct Regular expression as per given grammar.\n\uf065\nLetter\n\uf065\n\uf065\nLetter\n\uf065\n\uf065\nDigit\n\nD. Fourth option is wrong because this NFA does not accept regular expression,\nLetter (Letter)*\nHence, the correct option is (C).\n \n \nQuestion 10 \n \nAn algorithm has to store several keys generated by an adversary in a hash table. The adversary is \nmalicious who tries to maximize the number of collisions. Let \nk\n be the number of keys, m be the number\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n16\n\nof slots in the hash table, and \nk \n> \nm\n. Which one of the following is the best hashing strategy to counteract \nthe adversary? \n \n \n \n[Data Structure, Hashing] \n \n(A) Division method, i.e., use the hash function \nh\n(\nk\n) = \nk\n mod \nm\n.\n(B) Multiplication method, i.e., use the hash function \n\uf028\n\uf029\n( )\n,\nh k\nm kA\nkA\n\uf0ea\n\uf0fa\n\uf03d\n\uf02d\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n where \nA\n is a carefully\nchosen constant. \n \n(C) Universal hashing method \n \n(D) If \nk\n is a prime number, use Division method. Otherwise, use Multiplication method. \n\n \n(C)\n \nSol.\n \nHere, the attacker is trying to maximize collision and to minimize it we have to use a method that randomly \nassigns keys to the slots. So option \u201cC\u201d- Universal hasting is best. \n \nThe only effective way to improve the situation is to choose the Hash function Randomly in such a way \nthat is independent of the key that are actually going to be stored this approach is called universal hashing.\nHence, the correct option is (C).\n \nQuestion 11 \n(Digital Electronics) \n \nThe output of a 2-input multiplexer is connected back to one of its inputs as shown in the figure.\nMultiplexer\n0\nQ\n1\nS\nMatch the functional equivalence of this circuit to one of the following options\n[Digital Logic, Combinational Circuits] \n \n(A) D Flip-flop \n(B) D Latch \n \n(C) Half-adder \n(D) Demultiplexer \n\n \n(B)\n \nSol.\n \n:\n \nMethod 1 \n:\n \n \nThe output equation of above \n1\n2\n\uf0b4\n mux is:\n1\n0\n.\nI\nS\nI\nS\nV\n\uf02b\n\uf03d\nSo, when S = 0\nQ\nI\nY\n\uf03d\n\uf03d\n0\n, the previous state value\nWhen S = 1 \n \n1\nI\nY\n \uf03d\n, (Output = Input)\nThus, it is D, Latch \n \nHence, the correct option is (B). \n \n:\n \nMethod 2 \n:\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n17\n\n1\nn\nn\nn\nQ\nSQ\nSQ\n\uf02b\n\uf03d\n\uf02b\n1\n(\n)\nn\nn\nQ\nQ S\nS\n\uf02b\n\uf03d\n\uf02b\n1\nn\nn\nQ\nQ\n\uf02b\n\uf03d\nOutput is same as the input \n1\nn\nQ\n \uf02b\n is generated after delay.\nHence, the correct option is (B). \nQuestion 12 \n \nWhich one or more of the following need to be saved on a context switch from one thread (T1) of a process \nto another thread (T2) of the same process? \n[Operating System, Memory Management Virtual table] \n \n(A) Page table base register \n(B) Stack pointer \n \n(C) Program counter \n(D) General purpose registers \n\n \n(B), (C), (D)\n \nSol.\n \n(A) Page Table Base Register holds base address of page table for currently executing thread since,\nthread switch between same process so there\u2019s no need of updation: \n \n(B) Each thread has its own stack. So stack painter needs to be saved. \n \n(C) PC register contains address of next instruction to be executed by current thread. So it needs to be\nsaved when switch occurs. \n \n(D) These registers are used to store temporary data during thread execution and needs to be saved before\nthread switches. \n \nHence, the correct options are (B), (C) & (D). \nQuestion 13 \n \nWhich one or more of the following options guarantee that a computer system will transition from user \nmode to kernel mode? \n[Operating System, Process Management I] \n \n(A) Function Call \n(B) malloc Call \n \n(C) Page Fault \n(D) System Call \n\n \n(C), (D)\n \nSol.\n \n\uf0b7\n \nFunction calls and malloc calls do not necessarily result in transition to kernel mode. \n\uf0b7\n \nSystem call guarantees that computer system will transition from user mode to kernel mode as using \nsystem calls a user requests services from OS and transition from user mode to kernel mode. \n\uf0b7\n \nPage fault occures when program requests access of page not currently in memory (Physical \nmemory) so, OS needs to handle page fault and may need to allocate physical memory. \n \nHence, the correct options are (C) & (D). \nQuestion 14 \n \nWhich of the following statements is/are CORRECT?\n[Theory of Computation, Properties of Languages]\n \n \n(A) The intersection of two regular languages is regular. \n \n(B) The intersection of two context-free languages is context-free. \n \n(C) The intersection of two recursive languages is recursive.\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n18\n\n(D) The intersection of two recursively enumerable languages is recursively enumerable. \n\n \n(A), (C), (D)\n \nSol.\n \nIntersection options are closed under Regular Language, Recursive Language and Recursively \nEnumerable Language. \n \nFor Context free Language\nLet \n0\n,\n/\n1\n\uf0b3\n\uf03d\nn\nm\nc\nb\na\nL\nm\nn\nn\n and \n0\n,\n/\n2\n\uf0b3\n\uf03d\nn\nm\nc\nb\na\nL\nn\nn\nm\nBoth \n1\nL\n and \n2\nL\n are CFL languages.\nBut \n0\n/\n2\n1\n\uf0b3\n\uf03d\n\uf0c7\nn\nc\nb\na\nL\nL\nn\nn\nn\nis a non-CFL language\nSo (B) is False \n \nHence, the correct options are (A), (C) & (D). \nQuestion 15 \n \nWhich of the following statements is/are INCORRECT about the OSPF (Open Shortest Path First) routing \nprotocol used in the Internet? \n \n \n[Algorithm, Greedy Algorithm] \n \n(A) OSPF implements Bellman-Ford algorithm to find shortest paths. \n \n(B) OSPF uses Dijkstra\u2019s shortest path algorithm to implement least-cost path routing. \n \n(C) OSPF is used as an inter-domain routing protocol. \n \n(D) OSPF implements hierarchical routing. \n\n \n(A), (C)\n \nSol.\n \nOSPF uses Dijkstra\u2019s algorithm to compute the shortest path tree for each route, the cost of a route is \ncalculated by gathering link state information from available routers. \n \nAlso, OSPF is hierarchical routing protocol, using are 0 (autonomous system) at top of hierarchy. \n \nSo, A and C are False. \n \nHence, the correct options are (A) & (C). \nQuestion 16 \n \nGeetha has a conjecture about integers, which is of the form\n\uf028\n\uf029\n( )\n( , ) ,\nx P x\nyQ x y\n\uf022\n\uf0de\uf024\nwhere \nP\n is a statement about integers, and \nQ\n is a statement about pairs of integers. Which of the following \n(one or more) option(\ns\n) would imply Geetha\u2019s conjecture?\n[Discrete Mathematics, Mathematical Logic]\n \n \n(A) \n( ( ))\n( , )\nx P x\nyQ x y\n\uf024\n\uf0d9\uf022\n \n(B) \n( , )\nx yQ x y\n\uf022\uf022\n(C) \n\uf028\n\uf029\n( )\n( , )\ny x P x\nQ x y\n\uf024\uf022\n\uf0de\n \n(D) \n\uf028\n\uf029\n( )\n( , )\nx P x\nyQ x y\n\uf024\n\uf0d9\uf024\n\n \n(B), (C)\n \nSol.\n \nHere, domain is set of integers, So Elements \n \n,......}\n2,1,0,1\n,2\n,3\n{.....\n,\n\uf02d\n\uf02d\n\uf02d\nE\ny\nx\nExpression \n)}\n,\n(\n)\n(\n{\ny\nx\nQ\nx\nP\nx\nE\ny\n\uf024\n\uf0de\n\uf022\n\uf03d\nWhich says if x is P then \u2018 always exists a y such such that \nQ\n (\nx,y\n).\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n19\n\nNow, checking options. \n \nFor option (A) :\ny\nP x\nx y\nE\n\uf024\n\uf0d9\uf022\uf071\n\uf0ae\n[ ( )]\n( , )\nIs\nTrue?\nLHS\nRHS\nHere, for LHS to be true. Say there exists an \n(6)\nx\n \uf03d\n for which \n( )\n( )\np x\np c\n\uf03d\n\uf03d\n True and for all \n(6, )\ny\ny\n\uf071\nis True.\nNow, RHS : \n( )\n2( , )\np x\ny\nx y\nE\nx\nA\nB\n\uf024\n\uf03d\uf022\uf03c\n\uf0de\nA\n \uf03d\n True for say \n7,\nx\n \uf03d\n so \n(7)\np\n\uf03d\nTrue\nFor B, say there doesn\u2019t exist any y such that \n(7, )\nQ\ny\n = True. Hence \nA\nB\n\uf0de\nT\nF\n\uf0de\n is false. \n \nSo, its case of True \n\uf0de\nFalse as LHS is True and A \nRHS is False \n \nTherefore it becomes case of True \n\uf0ae\nFalse and eventually its False: \n \nFor option (B) :\ny\nx\nQ\ny\nx\n\uf0ae\n\uf022\n\uf022\n)\n,\n(\n True?\nE\nLHS\nRHS\nHere, LHS is True for all values of x and y.\nx\nP\nx\nE\n)]\n,\n(\n)]\n(\n[\n\uf024\n\uf0de\n\uf022\n\uf03d\ny\nx\nyQ\nA\nNow Ans: \nB\nNow, since, \n \n\uf03d\n\uf022\n\uf022\n)\n,\n(\ny\nx\nQ\ny\nx\nTrue.\n\uf03d\n\uf024\n)\n,\n(\ny\nx\nyQ\n True too.\nSo, For \nB\nA\n \uf0de\n \n \nA \n\uf0de\nTrue is always True. \n \nAs RHS is True. Its case of \n \nTrue \n\uf0ae\n True which is true. \n \nFor option (C) :\nE\ny\nx\nQ\nx\nP\nx\ny\n\uf0ae\n\uf0de\n\uf022\n\uf024\n)]\n,\n(\n)\n(\n[\n True?\n\uf0ae\n \nRHS\nLHS\nFor LHS to be true, there exists some y say y = 2 for which for all x which are satisfying property p \nimplies property Q (x,y)\nNow, RHS: = \n\uf0fa\uf0fb\n\uf0f9\n\uf0ea\uf0eb\n\uf0e9\n\uf024\n\uf0de\n\uf022\n\uf03d\nB\nx\nP\nx\nE\n)\n,\n(\n)\n(\ny\nx\nQ\ny\nA\n)\n,\n(\ny\nx\nQ\ny\nB\n\uf024\n\uf03d\n is always, true as there exists at least one y (we assumed y = 2) such that \n)\n2,\n(\nx\nQ\nx\n\uf022\nis\nTrue. So B is true \n \nThe case becomes \nA\nB\n\uf0de\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n20\n\nA\n \uf0de\nTrue which is true \n \nSo, L.H.S \n\uf0ae\n R.H.S. is true. \n \nFor Option (D) :\n[ ( )\n2( , )]\nTrue?\nLHS\nP x\ny\nx y\nE\nRHS\n\uf024\uf0b4\n\uf0d9\uf024\n\uf0ae\nFor LHS to be true, assume \n6\nx\n \uf03d\n for which properly \n(6)\nP\n is true and there exists a \ny\n assume \n2\ny\n \uf03d\nsuch that \n(6,2)\nQ\n is true.\nNow, RHS \n( )\n( , )\nP x\nyQ x y\nE\nVx\nA\nB\n\uf024\n\uf0e9\n\uf0f9\n\uf03d\n\uf03d\n\uf0de\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\nSay \n3\nx\n \uf03d\n and \n( )\nP x\n \uf03d\nTrue\nBut there exists no y for \n(3, )\nQ\ny\n to be true.\nHence, it becomes \nA\nB\n\uf0de\n \n \nTrue \n\uf0de\nFalse so RHS is False \n \nAlso, it becomes case of True \n\uf0ae\n False which is false. \n \nHence, the correct options are (B) & (C). \nQuestion 17 \n \nWhich one or more of the following CPU scheduling algorithms can potentially cause starvation?\n[Operating System, Process Management II] \n \n(A) First-in First-Out \n(B) Round Robin \n \n(C) Priority Scheduling \n(D) Shortest Job First \n\n \n(A), (C), (D)\n \nSol.\n \n\u2022 \nSJF and priority scheduling are prone to starvation as for SJF the shorter jobs might keep coming \nand longer burst time jobs have to keep waiting. \n \n\u2022 \nAlso, for priority scheduling the higher priority job might keep coming causing lower priority jobs \nto starve. \n \n\u2022 \nRound Robin never cause starvation as every job gets a fixed time quantum to execute, which is \nfinite and evry job get time for execution. \n \n\u2022 \nFor FCFS, in case of infinite loop like \n \n \nwhile (1); \n \n \nthen it cause starvation \n \n \nso until there\u2019s special case of a task running forever there will be no starvation. \n \nHence, the correct options are (A), (C) & (D). \nQuestion 18 \n \nLet \n3\n2\n( )\n15\n33\n36\nf x\nx\nx\nx\n\uf03d\n\uf02b\n\uf02d\n\uf02d\n be a real-valued function. Which of the following statements is/are \nTRUE? \n \n \n \n[Engineering Mathematics, Calculus] \n \n(A) \nf \n(\nx\n) does not have a local maximum. \n(B) \nf\n(\nx\n) has a local maximum. \n \n(C) \nf\n(\nx\n) does not have a local minimum. \n(D) \nf\n(\nx\n) has a local minimum\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n21\n\n \nB, D\n3\n2\n( )\n15\n33\n36\nf x\nx\nx\nx\n\uf03d\n\uf02b\n\uf02d\n\uf02d\n (A), (C)\n2\n( )\ng n\nn\n\uf03d",
+ "explanation_text": "Sol.\n \nBy definition: \u201c The degree of relation is the number of attributes it contains\u201d. \n \nHence, the correct option is (A). \nQuestion 7 \n \nSuppose two hosts are connected by a point-to-point link and they are configured to use Stop-and-Wait \nprotocol for reliable data transfer. Identify in which one of the following scenarios, the utilization of the \nlink is the lowest.\n[Computer Network & Datalink Layer]\n \n \n(A) Longer link length and lower transmission rate \n \n \n(B) Longer link length and higher transmission rate \n \n(C) Shorter link length and lower transmission rate \n \n(D) Shorter link length and higher transmission rate \nAns.\n \n(B)\nSol.\n \nTransmission Time \nLength of Packet (L)\n( )\nBand width (B.W)\nt\nT\n \uf03d\nPropagation Time \nLink Length (D)\n(\n)\nSpeed(V)\np\nT\n\uf03d\nT\nT\nT\n\uf03d\n\uf02b\nL Bw\nL\nD\nBw\nV\n/\nL\n\uf03d\n\uf0e6\n\uf0f6\n\uf02b\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf03d\n\uf0e6\n\uf0f6\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nLink Utilisation = Efficiency\n\nt\nD\nBw T\nV\n2\n2\n2\nt\nt\np\nSo, Efficiency \n\uf0b5\n \n1\n(Link Length)\nD\nAlso, Transmission rate = Band width and Efficiency \n1\nBw\n\uf0b5\nFor low utilization, we need longer link length and higher transmission rate. \n \nHence, the correct option is (B). \nQuestion 8\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n1\n2\n3\n4\n4\n1\n2\n3\n3\n4\n1\n2\n2\n3\n4\n1\n3\n4\n1\n2\n4\n1\n2\n3\n1\n2\n3\n4\n2\n3\n4\n1\nA\nB\nLet\nand\n\nLet det(\nA\n) and det(\nB\n) denote the determinants of the matrices \nA\n and \nB\n, respectively. \n \nWhich one of the options given below is TRUE?\n[Engineering Mathematics, Linear Algebra] \n \n(A) det(\nA\n) = det(\nB\n) \n(B) det(\nB\n) = \u2212det(\nA\n) \n \n(C) det(\nA\n)=0 \n(D) det(\nAB\n) = det(\nA\n) + det(\nB\n) \nAns. \n(B)\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n14\n\n\uf0e9\n\uf0f9\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf03d\n\uf03d\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\uf0eb\n\uf0fb\n1\n2\n3\n4\n3\n4\n1\n2\n4\n1\n2\n3\n4\n1\n2\n3\n3\n4\n1\n2\n1\n2\n3\n4\n2\n3\n4\n1\n2\n3\n4\n1\nSol.\n\nA\nB\n3\n1\nR\nR\n \uf0ab\ndet B = \u2013 det A \n \nHence, the correct option is (B). \nQuestion 9 \n \nConsider the following definition of a lexical token id for an identifier in a programming language, using \nextended regular expressions : \n \n \nLetter \n[\n]\nA Za\nz\n\uf0ae\n\uf02d\n\uf02d\nDigit \n[0 9]\n\uf0ae\n\uf02d\nid \n\uf0ae\n letter (letter/digit)* \n \nWhich one of the following Non - deterministic. Finite - state Automate with \n\uf0ce\n- transitions accepts the \nset of valid identifiers? (A double-circle denotes a final state)\n[Theory of Computation, Finite Automata]\n(A)\nLetter\nLetterdigit\n\uf065\n\n\nLetter\n\uf065\nLetter\n(B)\nDigit\n\uf065\n\n\n\n\uf065\nLetter\n\uf065\n\uf065\nLetter\n(C)\n\uf065\n\uf065\nDigit\n\n\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n15\n\n\uf065\n(D)\nLetter\nLetter\nDigit\n\n\nSol.\n2\n'( )\n3\n30\n33\nf x\nx\nx\n\uf03d\n\uf02b\n\uf02d\n \n \n\"( )\n6\n30\nf\nx\nx\n\uf03d\n\uf02b\n \n \n'( )\n0\nf\nx\n \uf03d\n\n2\n3\n30\n33\n0\nx\nx\n\uf02b\n\uf02d\n\uf03d\n \n \n2\n10\n11\n0\nx\nx\n\uf02b\n\uf02d\n\uf03d\n \n \n(\n11)(\n1)\n0\nx\nx\n\uf02b\n\uf02d\n\uf03d\n11\nx\n \uf03d\uf02d\n, \n1\nx\n \uf03d\n \n \n\"( )\n6\n30\nf\nx\nx\n\uf03d\n\uf02b\nat \n11\nx\n \uf03d\uf02d\n \n \n\"( 11)\n66\n30\nf\n\uf02d\n\uf03d\uf02d\n\uf02b\n \n \n36\n0\n\uf03d\uf02d\n\uf03c\n \n \nLocal maxima \n \nat \n1\nx\n \uf03d\n \n \n\"(1)\n6\n30\nf\n\uf03d\n\uf02b\n \n \n36\n0\n\uf03d\n\uf03e\n \n \nLocal minima \n \n\uf05c\n( )\nf x\n has a local maximum.\n\uf05c\n \n( )\nf x\n has a local minimum.\nHence, the correct options are B and D. \nQuestion 19 \n \nLet \nf\n and \ng\n be functions of natural numbers given by \nf\n(\nn\n) = \nn\n and \ng\n(n) = \nn\n2\n. Which of the following \nstatements is/are TRUE? \n[Algorithm, Complexity Analysis & Asymptotic notation]\n \n \n(A) \n( )\nf\nO g\n\uf0ce\n \n(B) \n( )\nf\ng\n\uf0ce\uf057\n(C) \n( )\nf\no g\n\uf0ce\n \n(D) \n( )\nf\ng\n\uf0ce\uf071\nSol.\n \nGiven, \n( )\nF n\nn\n\uf03d\n and\n(a) \n( )\nF\no g\n\uf0ce\n \n(Big\n)\noh\n\uf02d\n1\n( )\n( )\nF n\nc g n\n\uf0a3\n2\n1\nn\nc n\n\uf0a3\n \n1\n1\nc\n \uf03d\n2\nn\nn\n\uf0a3\n True\n(b) \n( )\nF\ng\n\uf0ce\uf057\n (omega)\n2\n( )\n( )\nF n\nc g n\n\uf0b3\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n22\n\n2\n2\nn\nc\nn\n\uf0b3\n\uf0d7\n False\nNot any constant possible to bound variable functions.\n(c) \n0( )\nF\ng\n\uf0ce\n (small-oh or little-oh)\n\uf028\n\uf029\n3\n( )\n( )\nF n\nc\ng n\n\uf03c\n2\n3\nn\nc n\n\uf03c\n \n3\n1\nc\n \uf03d\n2\nn\nn\n\uf03c\n \nTrue\n(d) \n( )\nF\ng\n\uf0ce\uf071\n (theta notation)\n( )\nF\ng\n\uf03d\uf071\n \n\uf0db\n \n\uf028\n\uf029\n1\n( )\n( )\nF n\nc g n\n\uf0a3\n AND \n\uf028\n\uf029\n2\n( )\n( )\nF n\nc g n\n\uf0b3\n\uf028\n\uf029\n2\n1\nn\nc n\n\uf0df\n\uf0a3\n AND \n\uf028\n\uf029\n2\n2\nn\nc n\n\uf0df\n\uf0b3\n= True AND False = False\nHence, the correct options are (A) & (C). \n \n \nQuestion 20 \n \nLet A be the adjacency matrix of the graph with vertices {1, 2, 3, 4, 5}.\n3\n5\n1\n2\n4\nLet \u03bb1, \u03bb2, \u03bb3, \u03bb4, and \u03bb5 be the five eigenvalues of A. Note that these eigenvalues need not be distinct. \nThe value of \u03bb1 + \u03bb2 + \u03bb3 + \u03bb4 + \u03bb5 = ______. \n \n \n[Discrete Mathematics, Graph Theory]\n \n \n \n \nAns. 2 \nSol.\nSum of Eigen values,\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n23\n\n)\n(\n5\n4\n3\n2\n1\nA\nT\nr\n\uf03d\n\uf06c\n\uf02b\n\uf06c\n\uf02b\n\uf06c\n\uf02b\n\uf06c\n\uf02b\n\uf06c\n= 0 + 0 + 1 + 1 +0 \n \n= 2 \n \nHence, the correct answer is 2 \nQuestion 21\n3\n2\n1\n2\n3\n3\n2\n1\n(4\n)\nx y\nz\ndz dy dx\n\uf02d\n\uf02d\n\uf02d\n\uf02d\n\uf0f2\uf0f2\uf0f2\nis________. (Rounded off to the nearest\nThe value of the definite integral\ninteger) \n[Engineering Mathematics, Calculus] \nAns. \n0\n3 2 1\n\uf02d\uf02d\uf02d\n\uf03d\n\uf02d\n\uf0f2\uf0f2\uf0f2\n2\n3\n(4\n)\nI\nx y\nz dz dydx\nSol.\n3 2 1\n3 2 1\n3 2 1\n2\n3\n\uf02d\uf02d\uf02d\n\uf02d\uf02d\uf02d\n\uf03d\n\uf02d\n\uf0f2\uf0f2\uf0f2\n\uf0f2\uf0f2\uf0f2\n3 2 1\n3 2 1\n(4\n)\n(\n)\nI\nx ydzdydx\nz dz dydx\n\n3 2\n4\n( )\n(0)\nI\nx y z\ndydx\n\uf02d\n\uf02d\uf02d\n\uf03d\n\uf02d\n\uf0f2\uf0f2\n2\n1\n\n1\n3 2\n3 2\n\uf02d\uf02d\n\uf03d\n\uf0f2\uf0f2\n2\n8\nI\nx ydydx\n\n3 2\n\uf0e6\n\uf0f6\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0f2\n\uf0f2\n3\n2\n2\n\n3\n2\n8\nI\nx\nydy dx\n\uf02d\n\uf02d\n3\n\uf02d\n\uf03d\n\uf0f2\n0\n\uf03d\n2\n8\n(0)\nI\nx\ndx\n\n3\nHence, the correct answer is 0. \nQuestion 22 \n \nA particular number is written as 132 in radix-4 representation. The same number in radix-5 representation \nis_________. \n \n \n[Digital Logic, Number System] \nAns. 110\nSol.\n \nGiven :\n \n2\n0\n4\n10\n(132)\n(1 4\n3 4' 2 4 )\n\uf03d\n\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n10\n16 12 2\n(30)\n\uf03d\n\uf02b\n\uf02b\uf03d\n \n(Power of 5)\n30\n5\n5\n(110)\n\uf03d\n5\n6\n0\n1\n1\n5\n(110)\n\uf03d\nHence, the correct answer is 110. \nQuestion 23\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n24\n\nConsider a 3-stage pipelined processor having a delay of 10 ns (nanoseconds), 20 ns, and 14 ns, for the \nfirst, second, and the third stages, respectively. Assume that there is no other delay and the processor does \nnot suffer from any pipeline hazards. Also assume that one instruction is fetched every cycle. The total \nexecution time for executing 100 instructions on this processor is ________ ns.\n[Computer Organization & Architecture, Instructions and Addressing Format] \nAns. 2040 \nSol.\n \nGiven delays 10ns, 20 ns, 14 ns\n \n \nThere\u2019s no buffer delay or hazard and one instruction is fetched every cycles. \n \nTotal instruction \n( )\n100\nn\n \uf03d\nPipeline delay \n(\n)\nmax(10,20,14)\n20ns\np\nT\n\uf03d\n\uf03d\nNumber of stages \n( )\n3\nk\n \uf03d\nSo, total execution time, \n[\n(\n1)]\np\nT\nk\nn\nT\n\uf03d\n\uf02b\n\uf02d\n\uf0b4\n(3 100 1) 20\n\uf03d\n\uf02b\n\uf02d\n\uf0b4\n2040 ns\n\uf03d\nHence, the correct answer is 2040. \nQuestion 24 \n \nA keyboard connected to a computer is used at a rate of 1 keystroke per second. The computer system \npolls the keyboard every 10 ms (milli seconds) to check for a keystroke and consumes \n100 s\n\uf06d\n (micro\nseconds) for each poll. If it is determined after polling that a key has been pressed, the system consumes \nan additional 200 \u03bcs to process the keystroke. Let \n1\nT\n denote the fraction of a second spent in polling and\nprocessing a keystroke. \n \nIn an alternative implementation, the system uses interrupts instead of polling. An interrupt is raised for \nevery keystroke. It takes a total of 1 ms for servicing an interrupt and processing a keystroke. Let \n2\nT\n denote\nthe fraction of a second spent in servicing the interrupt and processing a keystroke.\nT\nT\n \n is__________. (Rounded off to one decimal place)\nThe ratio \n1\n2\n[Computer Organization & Architecture, Input Output Organization]\n \nAns. 10.2 \nSol.\n \nComputer system polls keyboard every 10 ms.\nIn one second, it polls \n1s\n1000ms\n100times\n10ms\n10ms\n\uf03d\n\uf03d\nEach poll take 100\n\u03bcs\n3\n=100 100 s\n10 10 \u03bcs\n10ms\n\uf0b4\n\uf06d\uf03d\n\uf0b4\n\uf03d\nSo, total polling time\nAlso, it takes 200\n\u03bcs\n for processing keystroke i.e. 0.2 ms\nTotal time spent in polling,\n1\n(10 0.2)ms\nT\n \uf03d\n\uf02b\n10.2ms\n\uf03d\n\nGATE 2023 \n [Forenoon Session]\nComputer Science Engineering\nPAGE\n25\n\nIn interrupt system, when there\u2019s keystroke CPU executes corresponding interrupt service routine i.e.\nISR taking 1 ms. so, \n2\n1ms\nT\n \uf03d\n10.2ms\n10.2\n1ms\nT\nT\n \n\uf03d\n\uf03d\nNow, \n1\n2\nHence, the correct answer is 10.2. \nQuestion 25 \n \nThe integer value printed by the ANSI-C program given below is_________. \n \n#include \n \nint funcp(){ \n \n \nstatic int x = 1; \n \n \nx++; \n \n \nreturn x; \n \n} \n \nint main(){ \n \n \nint x,y; \n \n \nx = funcp(); \n \n \ny = funcp()+x; \n \n \nprintf(\"%d\\n\", (x+y)); \n \n \nreturn 0; \n \n} \n \n \n \n \n \n[C Program]\n \nAns. 7 \nSol.\n \nx \nin funcp( ) is static persists. It\u2019s value across the function call \n \ni. \nfuncp()\nx\n \uf03d\nmain ( )\n2\n5\ny\nx\n100\n200\nii. \nfuncp( )\n;\ny\nx\n\uf03d\n\uf02b\n3\n2\n5\n\uf02b\n\uf03d\nfuncp ( )\n1\n2\nx\n3\n300\niii. \nPrintf (\u201c%d\\n\u201d, (\nx \n+ y)); 2 + 5 = 7 \n \nHence, the correct answer is 7.\n..\nQ.26 to Q.55 Carry Two Marks Each\n.."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2023/6/exp.webp b/frontend/public/assets/gate/cs/questions/2023/6/exp.webp
new file mode 100644
index 0000000..ce04f48
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/6/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2023/6/q.webp b/frontend/public/assets/gate/cs/questions/2023/6/q.webp
new file mode 100644
index 0000000..e33304b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2023/6/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/1/data.json b/frontend/public/assets/gate/cs/questions/2024-M/1/data.json
new file mode 100644
index 0000000..202f476
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/1/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "1",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(D) \nSol. \nGiven :\n Two distinct non-zero variables \nx\n and \ny\nand \n(\n) (\n)\nx\ny\nx\ny\n\uf02b\n\uf061\n\uf02d\n\uf05c\n \n(\n)\n(\n)\nx\ny\nk x\ny\n\uf02b\n\uf03d\n\uf02d\nx\ny\nkx ky\n\uf02b\n\uf03d\n\uf02d\ny\nky\nkx\nx\n\uf02b\n\uf03d\n\uf02d\n(\n1)\n(\n1)\nk\ny\nk\nx\n\uf02b\n\uf03d\n\uf02d\n\nPAGE\n2\n\n\uf02b\n\uf03d\n\uf03d\n\uf02d\n (Constant)\n1\n'\n1\nx\nk\nk\ny\nk\n\uf05c\n \nx\ny\n \n\uf03d\n Constant\nHence, the correct option is (D). \nQuestion 3 \n \nConsider the following sample of numbers : \n \n \n \n [Numerical Ability, 1] \n \n \n9, 18, 11, 14, 15, 17, 10, 69, 11, 13 \n \nThe median of the sample is \n \n(A) 13.5 \n(B) 14 \n \n(C) 11 \n(D) 18.7 \n \n(A) \nSol.\n \nGiven :\n Sample of numbers \n \n \n9, 18, 11, 14, 15, 17, 10, 69, 11, 13 \n \nArranging the given sample in ascending order \n \n \n9, 10, 11, 11, 13, 14, 15, 17, 18, 69 \n \nNumber of observation = 10 = Even number\nth\nth\nn\nn\n\uf0e9\n\uf0f9\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02b\n\uf0ea\n\uf0fa\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\uf03d\nterm\n1\nterm\n2\n2\nMedian\n2\nHere \nn\n = 10\nth\nn\n\uf0e6\n\uf0f6\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nterm\n13\n2\n\nth\nn\n\uf0e6\n\uf0f6\n\uf02b\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n1\nterm\n14\n2\n\n2\n\uf02b\n\uf03d\nMedian \n13 14\nMedian = 13.5 \n \nHence, the correct option is (A). \nQuestion 4 \n \nThe number of coins of Rs.1, Rs.5, and Rs.10 denominations that a person has are in the ratio 5:3:13. Of \nthe total amount, the percentage of money in Rs. 5 coins is \n \n [Numerical Ability, 1]\n(A) 21% \n(B) \n2\n14\n%\n7\n(C) 10% \n(D) 30% \n \n(C)\n\nPAGE\n3",
+ "question_text": "Question 1 \n \nIf \n'\n'\n\uf0ae\n denotes increasing order of intensity, then the meaning of the words [dry \n\uf0ae\n arid \n\uf0ae\n parched] is \nanalogous to [diet \n\uf0ae\n fast \n\uf0ae\n_________]. Which one of the given option is appropriate to fill the blank \n? \n \n \n \n \n \n \n[Verbal Ability, 1] \n \n(A) Starve \n(B) Reject \n \n(C) Feast \n(D) Deny \nAns. \n(A) \nSol.\ndry\nArid\nparched\nMore severe\nextreme dryness\nLack of\nMoisture\nLack of\nMoisture\n(dehydration)\ndiet\nfast\nstarve\nregulated\neating\nplan\nVoluntrarily\nabstaining\nfrom food\nfor same\nperiod\nsevere deficiency\nin food\n\nHence, the correct option is (A).\n \nQuestion 2 \n \nIf two distinct non - zero variables \nx \nand\n y \nare such that \n(\n)\nx\ny\n\uf02b\n is proportional to \n(\n)\nx\ny\n\uf02d\n then the value\nof \nx\ny\n \n \n \n \n \n \n [Logical reasoning, 3]\n(A) Depends on \nxy\n \n(B) Depends only on \nx\n not on y \n \n(C) Depends only on \ny\n and not on \nx\n \n(D) is a constant",
+ "answer_text": "(D) \nSol. \nGiven :\n Two distinct non-zero variables \nx\n and \ny\nand \n(\n) (\n)\nx\ny\nx\ny\n\uf02b\n\uf061\n\uf02d\n\uf05c\n \n(\n)\n(\n)\nx\ny\nk x\ny\n\uf02b\n\uf03d\n\uf02d\nx\ny\nkx ky\n\uf02b\n\uf03d\n\uf02d\ny\nky\nkx\nx\n\uf02b\n\uf03d\n\uf02d\n(\n1)\n(\n1)\nk\ny\nk\nx\n\uf02b\n\uf03d\n\uf02d\n\nPAGE\n2\n\n\uf02b\n\uf03d\n\uf03d\n\uf02d\n (Constant)\n1\n'\n1\nx\nk\nk\ny\nk\n\uf05c\n \nx\ny\n \n\uf03d\n Constant\nHence, the correct option is (D). \nQuestion 3 \n \nConsider the following sample of numbers : \n \n \n \n [Numerical Ability, 1] \n \n \n9, 18, 11, 14, 15, 17, 10, 69, 11, 13 \n \nThe median of the sample is \n \n(A) 13.5 \n(B) 14 \n \n(C) 11 \n(D) 18.7 \n \n(A) \nSol.\n \nGiven :\n Sample of numbers \n \n \n9, 18, 11, 14, 15, 17, 10, 69, 11, 13 \n \nArranging the given sample in ascending order \n \n \n9, 10, 11, 11, 13, 14, 15, 17, 18, 69 \n \nNumber of observation = 10 = Even number\nth\nth\nn\nn\n\uf0e9\n\uf0f9\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf02b\n\uf02b\n\uf0ea\n\uf0fa\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\uf03d\nterm\n1\nterm\n2\n2\nMedian\n2\nHere \nn\n = 10\nth\nn\n\uf0e6\n\uf0f6\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nterm\n13\n2\n\nth\nn\n\uf0e6\n\uf0f6\n\uf02b\n\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n1\nterm\n14\n2\n\n2\n\uf02b\n\uf03d\nMedian \n13 14\nMedian = 13.5 \n \nHence, the correct option is (A). \nQuestion 4 \n \nThe number of coins of Rs.1, Rs.5, and Rs.10 denominations that a person has are in the ratio 5:3:13. Of \nthe total amount, the percentage of money in Rs. 5 coins is \n \n [Numerical Ability, 1]\n(A) 21% \n(B) \n2\n14\n%\n7\n(C) 10% \n(D) 30% \n \n(C)\n\nPAGE\n3",
+ "explanation_text": "Sol. \nGiven :\n No of coins of Rs 1, Rs 5 and Rs 10 denominations that a person has are in ratio 5 : 3 : 13\ni.e., \n1\n5\n10\n:\n:\n5:3:13\nC C\nC\n \uf03d\nWhere \n1\n5\n10\n,\n,\nC C C\n are no. of coins of Rs 1, Rs 5, Rs 10 denominations\n1\n5\n10\n:\n:\n5:3:13\n(let)\nC C\nC\nx\n\uf03d\n\uf03d\ni.e., \n1\n5\nC\nx\n\uf03d\n5\n3\nC\nx\n\uf03d\n10\n13\nC\nx\n\uf03d\nAmount of money in Rs 1 Coins \n \n \n \n5\n1\nx\n\uf03d\n\uf0b4\n \n \n \n \nRs 5\nx\n\uf03d\n \n \nAmount of money in Rs 5 Coins \n \n \n \n3\n5\nx\n\uf03d\n\uf0b4\n \n \n \n \nRs 15\nx\n\uf03d\n \n \nAmount of money in Rs 10 Coins \n \n \n \n13\n10\nx\n\uf03d\n\uf0b4\n \n \n \n \nRs 130\nx\n\uf03d\n \n \nTotal amount of money that person has in Rs 1, Rs 5 and Rs 10 denomination \n \n \n \n5\n15\n130\nx\nx\nx\n\uf03d\n\uf02b\n\uf02b\n \n \n \n \nRs 150\nx\n\uf03d\n150 Rs\nx\n\uf03d\nPercentage of money in Rs 5 coins\n15\n100\n150\nx\nx\n\uf03d\n\uf0b4\n15\n100\n150\n\uf03d\n\uf0b4\n10%\n\uf03d\n \n \nHence, the correct option is (C). \nQuestion 5 \n \nFor positive non - zero real variables \np\n and \nq\n , if\n2\n2\nlog(\n)\nlog\nlog\n2log3\np\nq\np\nq\n\uf02b\n\uf03d\n\uf02b\n\uf02b\n\n\uf02b\n is \n \n \n \n \n[Logical reasoning, 3]\n4\n4\n2\n2\np\nq\np q\nthen, the value of\n(A) 79 \n(B) 81 \n \n(C) 9 \n(D) 83 \nAns. \n(A)\n\nPAGE\n4\n\nSol.\n \nGiven :\n For positive non-zero real variables \np\n and \nq\n2\n2\nlog(\n)\nlog\nlog\n2log3\np\nq\np\nq\n\uf02b\n\uf03d\n\uf02b\n\uf02b\n2\n2\n2\nlog(\n)\nlog\nlog\nlog3\np\nq\np\nq\n\uf02b\n\uf03d\n\uf02b\n\uf02b\n \n \n[\nlog\nlog\n]\nn\nn\nm\nm\n\uf03d\n\n2\n2\nlog(\n)\nlog(\n)\nlog9\np\nq\npq\n\uf02b\n\uf03d\n\uf02b\n \n \n \n[\nlog\nlog\nlog\n]\nm\nn\nmn\n\uf02b\n\uf03d\n\n2\n2\nlog(\n)\nlog(\n)\nlog9\np\nq\npq\n\uf02b\n\uf02d\n\uf03d\n2\n2\nlog\nlog9\np\nq\npq\n\uf0e9\n\uf0f9\n\uf02b\n\uf03d\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\nn\n\uf0e9\n\uf0f9\n\uf0e6\n\uf0f6\n\uf02d\n\uf03d\n\uf0e7\n\uf0f7\n\uf0ea\n\uf0fa\n\uf0e8\n\uf0f8\n\uf0eb\n\uf0fb\nlog m\nlog n\nlog\n \nm\n\n\nTaking antilog both sides,\n\uf02b\n\uf03d\n2\n2\n9\np\nq\npq\n\n9\np\nq\nq\np\n\uf02b\n\uf03d\n \n \n \n \n \n\u2026(i)\nNow,\n\uf032\n\uf02b\n\uf03d\n\uf02b\n4\n4\n2\n2\n2\n2\n2\np\nq\np\nq\np q\nq\np\n\n2\n2\np\nq\nq\np\n\uf0e6\n\uf0f6\n\uf0e6\n\uf0f6\n\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf0e8\n\uf0f8\n2\n2\n2\n[\n(\n)\n2\n]\na\nb\na\nb\nab\n\uf02b\n\uf03d\n\uf02b\n\uf02d\n\n\n2\n2\np\nq\np q\nq\np\nq p\n\uf0e6\n\uf0f6\n\uf03d\n\uf02b\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n\n2\n2\np\nq\nq\np\n\uf0e6\n\uf0f6\n\uf03d\n\uf02b\n\uf02d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n\u2026(ii)\nFrom equation (i)\n9\np\nq\nq\np\n\uf02b\n\uf03d\nSubstituting in equation (ii)\n\uf02b\n\uf03d\n\uf02d\n4\n4\n2\n2\n2\n(9)\n2\np\nq\np q\n\n= 81 \u2013 2\n\uf02b\n\uf03d\n4\n4\n2\n2\n79\np\nq\np q\n\nHence, the correct option is (A).\nQ.6 to Q.10 Carry TWO Marks Each\n\nPAGE\n5\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/1/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/1/exp.webp
new file mode 100644
index 0000000..a093363
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/1/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/1/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/1/q.webp
new file mode 100644
index 0000000..a1eda44
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/1/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/14/data.json b/frontend/public/assets/gate/cs/questions/2024-M/14/data.json
new file mode 100644
index 0000000..02acac5
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/14/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "14",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 14 \n \n \nConsider a permutation sampled uniformly at random from the set of all permutations of {1,2,3,\u2026, \nn\n} for \nsome \n4\nn\n \uf0b3\n. Let \nX\n be the event that 1 occurs before 2 in the permutation, and \nY\n the event that 3 occurs \nbefore 4. Which one of the following statements is TRUE ? \n \n \n \n(1 Mark) \n[Engineering Mathematics, Probability]\n \n \n(A) The events \nX \nand \nY\n are mutually exclusive \n(B) The events \nX\n and \nY\n are independent \n(C) Either event \nX\n or \nY\n must occur \n(D) Event \nX\n is more likely than event \nY \nAns. \n(B)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nWe have to consider random permutation from set {1, 2, 3\u2026\u2026\nn\n} for some \n4\nn\n \uf0b3\n.\nFast approach to solve this by putting \nn\n = 4\nSo, our set will be {1,2,3,4}\nLet, \nX\n : 1 Occur before 2.\nY\n : 3 occur before 4.\nAll Possible Permutations will be:\n(1, 2, 3, 4), (1, 2, 4, 3), (1, 3, 2, 4), (1, 3, 4, 2), (1, 4, 2, 3), (1, 4, 3, 2)\n(2, 1, 3, 4), (2, 1, 4, 3), (2, 3, l, 4), (2, 3, 1, 4), (2, 4, 1, 3), (2, 4, 3, 1)\n(3, 1, 2, 4), (3, 1, 4, 2), (3, 2, 1, 4), (3, 2, 4, 1), (3, 4, 1, 2), (3, 4, 2, 1)\n(4, 1, 2, 3), (4, 1, 3, 2), (4, 2, 1, 3), (4, 2, 3, 1), (4, 3, 1, 2), (4, 3, 2, 1)\nNow \n(\n)\n12 / 24\n1/ 2\nP X\n \uf03d\n\uf03d\n( )\n12 / 24\n1/ 2\nP Y\n \uf03d\n\uf03d\n(\n)\n6 / 24\n1/ 4\nP X\nY\n\uf0c7\n\uf03d\n\uf03d\nFrom here, we can observe that \n(\n)\n(\n). ( )\nP X\nY\nP X P Y\n\uf0c7\n\uf03d\nSo, \nX\n and \nY\n are Independent Events\nSo, Option B is Correct.\nLet\u2019s not conclude here and try to observe all given options.\nOption A :\n \nX\n and \nY\n are Mutually Exclusive\nX \nand \nY\n will be Mutually Exclusive iff \n(\n)\nP X\nY\n\uf0c7\n= 0 , but this is not possible here\nSo, Option A is FALSE\n\nPAGE\n13\n\nOption B : \nThe event \nX\n and \nY\n are independent\n12\n1\n(\n)\n24\n2\nP X\n \uf03d\n\uf03d\n12\n1\n( )\n24\n2\nP Y\n \uf03d\n\uf03d\n6\n1\n(\n)\n24\n4\nP X\nY\n\uf0c7\n\uf03d\n\uf03d\n(\n)\n(\n). ( )\nP X\nY\nP X P Y\n\uf0c7\n\uf03d\n1\n1\n1\n(\n)\n2\n2\n4\nP X\nY\n\uf0e6\n\uf0f6\uf0e6\n\uf0f6\n\uf0c7\n\uf03d\n\uf03d\n\uf0e7\n\uf0f7\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\uf0e8\n\uf0f8\n\nSo, option B is correct.\nOption C:\n Either Event \nX\n or \nY\n must Occur\nThis statement is FALSE as we have counter-example as:\n(4213)\nSo, Option C is FALSE.\nOption D:\n Event \nX\n is more likely then Event \nY\n.\nThis statement is clearly FALSE, as \n(\n)\n( )\nP X\nP Y\n\uf03d\nHence Event \nX\n and Event \nY\n are equally Likely\nSo, Option D is FALSE\nHence the correct option is (B)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/14/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/14/exp.webp
new file mode 100644
index 0000000..ae2cc11
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/14/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/14/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/14/q.webp
new file mode 100644
index 0000000..2d58b4b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/14/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/15/data.json b/frontend/public/assets/gate/cs/questions/2024-M/15/data.json
new file mode 100644
index 0000000..928fea8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/15/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "15",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 15 \n \n \n[Operating System (Process Management-II)] \n \nWhich one of the following statements is FALSE ? \n \n(A) In the cycle stealing mode of DMA, one word of data is transferred between an I/O device and main\nmemory in a stolen cycle \n \n \n(B) For bulk data transfer, the burst mode of DMA has a higher throughout than the cycle stealing mode \n \n(C) Programmed I/O mechanism has a better CPU utilization than the interrupt driven I/O mechanism \n \n(D) The CPU can start executing an interrupt service routine faster with vectored interrupts than with\nnon-vectored interrupts \nAns. \n(C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nAll the (I/O) operations are performed in CPU. So, In programmed (I/O) processor utilisations is very \nless.\n\nPAGE\n14\n\nHence, the correct option is (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/15/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/15/exp.webp
new file mode 100644
index 0000000..6ab1212
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/15/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/15/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/15/q.webp
new file mode 100644
index 0000000..3cfbbaa
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/15/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/16/data.json b/frontend/public/assets/gate/cs/questions/2024-M/16/data.json
new file mode 100644
index 0000000..a212238
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/16/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "16",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 16\n \n \n \n[Computer Network (Transport Layer)]\n \n \nA user starts browsing a webpage hosted at a remote server. The browser opens a single TCP connection \nto fetch the entire webpage from the server. The webpage consists of a top-level index page with multiple \nembedded image objects. Assume that all caches (e.g., DNS cache, browser cache) are all initially empty. \nThe following packets leave the user\u2019s computer in some order. \n \n \n(i) \nHTTP GET request for the index page \n \n(ii) DNS request to resolve the web server\u2019s name to its IP address \n \n(iii) HTTP GET request for an image object \n \n \n(iv) TCP SYN to open a connection to the web server \n \nWhich one of the following is the CORRECT chronological order (earliest in time to latest) of the packets \nleaving the computer ? \n \n(A) (iv), (ii), (iii), (i) \n(B) (ii), (iv), (iii), (i) \n \n(C) (ii), (iv), (i), (iii) \n(D) (iv), (ii), (i), (iii) \nAns. \n(C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nFirst the DNS request will be send then TCP SYN For opening the connection then it\u2019s ack followed by \nHTTP GET request for the index page and at the end HTTP het request for an image object.\nHence, the correct option is (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/16/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/16/exp.webp
new file mode 100644
index 0000000..043b4fc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/16/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/16/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/16/q.webp
new file mode 100644
index 0000000..a467e9c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/16/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/17/data.json b/frontend/public/assets/gate/cs/questions/2024-M/17/data.json
new file mode 100644
index 0000000..9ce913f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/17/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "17",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 17 \n \n \n \n[Algorithm (Complexity Analysis)]\n \n \nGiven an integer array of size N. we want to check if the array is sorted (in either ascending or descending \norder). An algorithm solves this problem by making a single pass through the array and comparing each \nelement of the array only with its adjacent elements. The worst-case time complexity of this algorithm is\n(A) Both \nO(N)\n and \n\u03a9(N)\n \n(B) \nO(N)\n but not \n\u03a9(N)\n(C) \n\u03a9(N)\n but not \nO(N)\n \n(D) Neither O(\nN\n) nor \n\u03a9(N)",
+ "answer_text": "(A)",
+ "explanation_text": "Sol. \n Code Snippet\nIs ascending = 0; is descending = 0;\nFor \n(\n1;1\n1;\n)\nidx\nN\ni\n\uf03d\n\uf03c\uf03d\n\uf02d\n\uf02b\uf02b\n{\nIf \n(arr[\n]\narr[\n1])\nidx\nidx\n\uf03e\n\uf02b\n{\nIs descending = 1;\n}\n\nPAGE\n15\n\nElse\n{\nIs ascending = 1;\n}\n}\nSo, both will take O(N) as we will require to traverse full array.\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/17/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/17/exp.webp
new file mode 100644
index 0000000..3b1d7ef
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/17/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/17/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/17/q.webp
new file mode 100644
index 0000000..46db613
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/17/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/18/data.json b/frontend/public/assets/gate/cs/questions/2024-M/18/data.json
new file mode 100644
index 0000000..2ccc972
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/18/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "18",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 18 \n \n \n \n \n \n[C-Programming]\n \n \nConsider the following C program : \n \n# include \n \nint main () { \n \n \nint \na \n= 6; \n \n \nint \nb\n = 0; \n \n \nwhile (\na\n < 10) { \n \n \n \na\n = \na\n/12 + 1; \n \n \n \na\n + = \nb\n; } \n \n \nprintf (\u201c%\nd\n\u201d, \na\n); \n \n \nreturn 0;} \n \nWhich one of the following statements is CORRECT ? \n \n(A) The program prints 9 as output \n \n(B) The program prints 10 as output \n \n(C) The program gets stuck in an infinite loop \n \n(D) The program prints 6 as output \nAns. \n(C)",
+ "answer_text": "",
+ "explanation_text": "Sol. \nThe program gets stuck in an infinite loop\n6\na\n1\n0\nb\nLoop :\nWhile \n(\n10) (\n10)\na\na\n\uf03c\n\uf03c\n\uf0ae\n True\n6\n1\n(0 1)\n1\n12\na\n \uf03d\n\uf02b\uf03d\n\uf02b\n\uf03d\n1 0\n1\na\na\nb\n\uf03d\n\uf02b\n\uf03d\uf02b\n\uf03d\nWhile (a < 10) [1 < 10] \n\uf0ae\n true\n\nPAGE\n16\n\n1\n1\n(0 1)\n1\n12\na\n \uf03d\n\uf02b\uf03d\n\uf02b\n\uf03d\n1 0\n1\na\n \uf03d\uf02b\n\uf03d\nSo, Every time a = 1 will come and while loop will Execute infinitely.\nHence, the correct option is (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/18/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/18/exp.webp
new file mode 100644
index 0000000..548be71
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/18/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/18/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/18/q.webp
new file mode 100644
index 0000000..6508d4c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/18/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/19/data.json b/frontend/public/assets/gate/cs/questions/2024-M/19/data.json
new file mode 100644
index 0000000..7575f26
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/19/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "19",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 19 \n \n \n \n \n \n[C-Programming]\n \n \nConsider the following \nC\n program : \n \n#include \n \nvoid \nfx\n ( ); \n \nint main () { \n \n \nfx\n( ); \n \n \n return 0; } \n \nvoid \nfx\n ( ) { \n \nchar a; \n \nif ((\na\n = getchar ( )) ! = \u2019\\n\u2019) \n \n \nfx \n( ); \n \nif (\na\n! = \u2018\\\nn\n\u2019) \n \n putchar (\na\n);} \n \nAssume that the input to the program from the command line is 1234 followed by a newline character. \nWhich one of the following statements is CORRECT ? \n \n(A) The program will not terminate \n(B) The program will terminate with no input. \n \n(C) The program will terminate with 4321 as output \n \n(D) The program will terminate with 1234 as output \nAns. \n(C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nThe program will terminate with 4321 as output\n4\nth\nfX\n \uf0ae\n4\n3\nrd\nfX\n \uf0ae\n3\n2\nnd\nfX\n \uf0ae\n2\n1\nst\nfX\n \uf0ae\n1\n\nAfter 4 \u2018ln\u2019 is inserted then put char (a) is called and a will have 4.\nSo, it will be printed in reverse order 4321\nHence, the correct option is (C).\n\nPAGE\n17\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/19/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/19/exp.webp
new file mode 100644
index 0000000..a12f98c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/19/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/19/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/19/q.webp
new file mode 100644
index 0000000..11b75a3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/19/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/20/data.json b/frontend/public/assets/gate/cs/questions/2024-M/20/data.json
new file mode 100644
index 0000000..c0212cf
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/20/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "20",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 20 \n \n \n \n \n[Database (ER Model)]\n \n \nLet \nS\n be the specification: \u201cInstructors teach courses. Students register for courses. Courses are allocated \nclassrooms. Instructors guide students.\u201d Which one of the following ER diagrams CORRECTLY \nrepresents \nS\n ? \n \n(i)\nRegistration\nInstructor\nTeaches\nCourse\nClassroom\nAlloca\ntion\nStudent\nGuides\n(ii)\nInstructor\nTeaches\nCourse\nClassroom\nAlloca\nRegistration\ntion\nGuides\nProjects\n(iii)\n(iv)\n\nPAGE\n18\n\n(A) (i) \n(B) (ii) \n \n(C) (iii) \n(D) (iv) \nAns. \n(D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\nInstructor\nTeaches\nCourse\nClassroom\nAlloca\nRegistration\ntion\nGuides\nStudent\n\nHence, the correct option is (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/20/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/20/exp.webp
new file mode 100644
index 0000000..89ce73c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/20/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/20/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/20/q.webp
new file mode 100644
index 0000000..559b9e3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/20/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/21/data.json b/frontend/public/assets/gate/cs/questions/2024-M/21/data.json
new file mode 100644
index 0000000..c7d6cfb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/21/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "21",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 21 \n \n \n \n \n[Data Structure (Tree)] \n \nIn a B+ tree, the requirement of at least half-full (50%) node occupancy is relaxed for which one of the \n \nfollowing cases ? \n \n(A) Only the root node \n(B) All leaf nodes \n \n(C) All internal nodes \n(D) Only the leftmost leaf node \nAns. \n(A)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nIn a \nB\n \n\uf02b\n tree at least half full (50%) node occupancy is relaxed only for the root node.\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/21/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/21/exp.webp
new file mode 100644
index 0000000..b0361bf
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/21/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/21/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/21/q.webp
new file mode 100644
index 0000000..92b5ccc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/21/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/22/data.json b/frontend/public/assets/gate/cs/questions/2024-M/22/data.json
new file mode 100644
index 0000000..731453d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/22/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "22",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 22 \n \n \n[Database (Database Design Function)]\n \n \nWhich of the following statements about a relation \nR\n in first normal form (1 NF) is/are TRUE ? \n \n(A) \nR\n can have a multi-attribute key\n \n \n \n(B) \nR\n cannot have a foreign key\n\nPAGE\n19\n\n(C) \nR\n cannot have a composite attribute\n \n \n \n(D) \nR\n cannot have more than one candidate key \nAns. \n(A,C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nIn (1 NF) or \nm\n the relation \nR\n can have a multi-attribute key also if can\u2019t have a composite attribute.\nFirst normal form (1 NF) :\n\uf0b7\n \ncan have composite key (multi-attribute key)\n\uf0b7\n \nmust have atleast one candidate key\n\uf0b7\n \nnot allowed multi-valued attributes\n\uf0b7\n \nevery attribute of \nR\n must be atomic\n\uf0b7\n \nnot allowed composite attributes\n\uf0b7\n \nmay consist foreign keys\nHence, the correct option is (A) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/22/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/22/exp.webp
new file mode 100644
index 0000000..43d2b55
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/22/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/22/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/22/q.webp
new file mode 100644
index 0000000..328033c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/22/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/23/data.json b/frontend/public/assets/gate/cs/questions/2024-M/23/data.json
new file mode 100644
index 0000000..0339c10
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/23/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "23",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(C,D)",
+ "question_text": "Question 23\n \n[Theory of Computation (Properties of Languages)]\nLet \n1\n2\n,\nL L\n be two regular languages and \n3\nL\n a language which is not regular. Which of the following\nstatements is/are always TRUE ?\n(A) \n1\n2\nL\nL\n\uf03d\n if and only if \n1\n2\nL\nL\n \uf03d\uf066\n(B) \n1\n3\nL\nL\nis not regular\n(C) \n3\nL\n is not regular \n(D) \n1\n2\nL\nL\nis regular",
+ "answer_text": "(C,D)",
+ "explanation_text": "Sol.\n \n1\n2\nReg\nReg\nReg\nL\nL\n\uf0c8\n\uf03d\n\uf0c8\n\uf03d\n3\nNon-Reg\nNon-regular\nL\n \uf03d\n\uf03d\nHence, the correct option is (C) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/23/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/23/exp.webp
new file mode 100644
index 0000000..a0d5e22
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/23/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/23/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/23/q.webp
new file mode 100644
index 0000000..782277e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/23/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/24/data.json b/frontend/public/assets/gate/cs/questions/2024-M/24/data.json
new file mode 100644
index 0000000..7335bcd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/24/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "24",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 24\n \n \n \n[Operating System (Process Management-II)]\n \n \nWhich of the following statements about threads is/are TRUE ? \n \n(A) Threads can only be implemented in kernel space \n \n \n(B) Each thread has its own file descriptor table for open files \n \n(C) All the threads belonging to a process share a common stack \n \n(D) Threads belonging to a process are by default not protected from each other \nAns. \n(D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nThreads belonging to a process are by default not protected to each other. \n \nHence, the correct option is (D). \nQuestion 25 \n \n \n[Operating System (Process Management-I)]\n\nPAGE\n20\n\nWhich of the following process state transitions is are NOT possible ? \n(A) Running to Ready \n(B) Waiting to Running \n(C) Ready to Waiting \n(D) Running to Terminated \nAns. \n(B, C)\nSol.\nNew\nReady\nRun\nTerminate\nWait\n\nSo, ready to waiting and waiting to running is not a valid transition.\nHence, the correct option (B) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/24/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/24/exp.webp
new file mode 100644
index 0000000..69c5470
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/24/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/24/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/24/q.webp
new file mode 100644
index 0000000..4f0c913
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/24/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/26/data.json b/frontend/public/assets/gate/cs/questions/2024-M/26/data.json
new file mode 100644
index 0000000..c775911
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/26/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "26",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 26 \n \n \n[Complier Design (Parsing Techniques)] \n \nWhich of the following is/are Bottom-Up Parser(s) ?. \n(A)\n \nShift - reduce Parser \n(B) Predictive Parser \n(C) LL(1) Parser \n(D) LR Parser \nAns. (A, D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nLR parser and shift-reduce parsers are bottom up parsers.\nHence, the correct option is (A) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/26/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/26/exp.webp
new file mode 100644
index 0000000..38afa18
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/26/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/26/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/26/q.webp
new file mode 100644
index 0000000..709cd8e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/26/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/27/data.json b/frontend/public/assets/gate/cs/questions/2024-M/27/data.json
new file mode 100644
index 0000000..e36fb1e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/27/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "27",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B, C) \nSol. \nGiven :\n(i) \n( )\n0.3\nP A\n \uf03d\n(ii) \n( )\n0.5\nP B\n \uf03d\n(iii)\n (\n)\n0.1\nP A\nB\n\uf0c7\n\uf03d\nFrom option (A) : \n \nThe two events \nA\n and \nB\n are independent \n \n\u2022 \nIf \nA\n and \nB\n both are independent events in different sample space then.\n\nPAGE\n21\n\n(\n)\n( ). ( )\nP A\nB\nP A P B\n\uf0c7\n\uf03d\n\u2022 \nAccording to given data \n \n \n0.1\n0.3 0.5\n\uf0b9\n\uf0b4\nHence, option A is not correct\nFrom option (B) :\n(\n)\n( )\n( )\n(\n)\nP A\nB\nP A\nP B\nP A\nB\n\uf0c8\n\uf03d\n\uf02b\n\uf02d\n\uf0c7\n0.3\n0.5\n0.1\n\uf03d\n\uf02b\n\uf02d\n \n \n \n0.8 0.1\n0.7\n\uf03d\n\uf02d\n\uf03d\n(\n)\n0.7\nP A\nB\n\uf0c8\n\uf03d\nHence, option B is correct \n \nFrom option (C) :\n(\n)\n( )\n(\n)\nC\nP A\nB\nP A\nP A\nB\n\uf0c8\n\uf03d\n\uf02d\n\uf0c7\n0.3\n0.1\n0.2\n\uf03d\n\uf02d\n\uf03d\n(\n)\n0.2\nC\nP A\nB\n\uf0c8\n\uf03d\nHence, option C is correct \n \nFrom option (D) :\n(\n)\n1\n(A\n)\nC\nC\nP A\nB\nP\nB\n\uf0c7\n\uf03d\uf02d\n\uf0c8\n(\n)\n0.3 0.5 0.1\nP A\nB\n\uf0c8\n\uf03d\n\uf02b\n\uf02d\n(\n)\n0.7\nP A\nB\n\uf0c8\n\uf03d\n(\n)\n1 0.7\n0.3\nC\nC\nP A\nB\n\uf0c7\n\uf03d\uf02d\n\uf03d\nHence, option D is not correct \n \nHence, the correct options are (B) and (C). \nQuestion 28 \n \n \n[Digital Logic (Combinational Circuit)] \n \nConsider the circuit shown below where the gates may have propagation delays. Assume that all signal \ntransitions occur instantaneously and that wires have no delays. Which of the following statements about \nthe circuit is are CORRECT ?\n(A) With no propogation delays, the output \nY\n is always logic zero. \n(B) With no propagation delays, the output \nY\n is always logic one. \n \n(C) With propagation delays, the output \nY \n can have a transient logic one after \nX\n transition from logic\nzero to logic one.\n\nPAGE\n22\n\n(D) With propagation delays, the output \nY\n can have a transient logic Zero after \nX \ntransitions from logic\nOne to logic Zero \n \n (A, C)",
+ "question_text": "Question 27\nLet \nA\n and \nB \n be two events in a probability space with \n( )\n0.3, ( )\n0.5,\nP A\nP B\n\uf03d\n\uf03d\nand \n(\n)\n0.1\nP A\nB\n\uf0c7\n\uf03d\n. Which \nof the following statements is/are TRUE ? \n \n \n \n \n \n \n[Engineering Mathematics, Probability]\n \n(A)\n \nThe two events \nA \nand \nB \n are independent.\n(B) \n(\n)\n0.7\nP A\nB\n\uf0c8\n\uf03d\n(C) \n(\n)\n0.2,\nc\nP A\nB\n\uf0c8\n\uf03d\n where\nc\nB\n is the complement of the event \nB\n(D) \n(\n)\n0.4,\nc\nc\nP A\nB\n\uf0c7\n\uf03d\n where\nc\nA\n and\nc\nB\n are the complements of the events \nA\n and \nB\n respectively",
+ "answer_text": "(B, C) \nSol. \nGiven :\n(i) \n( )\n0.3\nP A\n \uf03d\n(ii) \n( )\n0.5\nP B\n \uf03d\n(iii)\n (\n)\n0.1\nP A\nB\n\uf0c7\n\uf03d\nFrom option (A) : \n \nThe two events \nA\n and \nB\n are independent \n \n\u2022 \nIf \nA\n and \nB\n both are independent events in different sample space then.\n\nPAGE\n21\n\n(\n)\n( ). ( )\nP A\nB\nP A P B\n\uf0c7\n\uf03d\n\u2022 \nAccording to given data \n \n \n0.1\n0.3 0.5\n\uf0b9\n\uf0b4\nHence, option A is not correct\nFrom option (B) :\n(\n)\n( )\n( )\n(\n)\nP A\nB\nP A\nP B\nP A\nB\n\uf0c8\n\uf03d\n\uf02b\n\uf02d\n\uf0c7\n0.3\n0.5\n0.1\n\uf03d\n\uf02b\n\uf02d\n \n \n \n0.8 0.1\n0.7\n\uf03d\n\uf02d\n\uf03d\n(\n)\n0.7\nP A\nB\n\uf0c8\n\uf03d\nHence, option B is correct \n \nFrom option (C) :\n(\n)\n( )\n(\n)\nC\nP A\nB\nP A\nP A\nB\n\uf0c8\n\uf03d\n\uf02d\n\uf0c7\n0.3\n0.1\n0.2\n\uf03d\n\uf02d\n\uf03d\n(\n)\n0.2\nC\nP A\nB\n\uf0c8\n\uf03d\nHence, option C is correct \n \nFrom option (D) :\n(\n)\n1\n(A\n)\nC\nC\nP A\nB\nP\nB\n\uf0c7\n\uf03d\uf02d\n\uf0c8\n(\n)\n0.3 0.5 0.1\nP A\nB\n\uf0c8\n\uf03d\n\uf02b\n\uf02d\n(\n)\n0.7\nP A\nB\n\uf0c8\n\uf03d\n(\n)\n1 0.7\n0.3\nC\nC\nP A\nB\n\uf0c7\n\uf03d\uf02d\n\uf03d\nHence, option D is not correct \n \nHence, the correct options are (B) and (C). \nQuestion 28 \n \n \n[Digital Logic (Combinational Circuit)] \n \nConsider the circuit shown below where the gates may have propagation delays. Assume that all signal \ntransitions occur instantaneously and that wires have no delays. Which of the following statements about \nthe circuit is are CORRECT ?\n(A) With no propogation delays, the output \nY\n is always logic zero. \n(B) With no propagation delays, the output \nY\n is always logic one. \n \n(C) With propagation delays, the output \nY \n can have a transient logic one after \nX\n transition from logic\nzero to logic one.\n\nPAGE\n22\n\n(D) With propagation delays, the output \nY\n can have a transient logic Zero after \nX \ntransitions from logic\nOne to logic Zero \n \n (A, C)",
+ "explanation_text": "Sol.\n \n(a) If no progression delay then due to NOT gate one of the input will be always zero.\nAND\n0 (always)\nX (0/1)\n(1, 0)\n\n(c) If there is delay then not gate o/p will be\n X\n .\nHence, the correct option (A) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/27/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/27/exp.webp
new file mode 100644
index 0000000..3432bf5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/27/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/27/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/27/q.webp
new file mode 100644
index 0000000..69bec3f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/27/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/29/data.json b/frontend/public/assets/gate/cs/questions/2024-M/29/data.json
new file mode 100644
index 0000000..ad208b9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/29/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "29",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A, D)",
+ "question_text": "Question 29 \n \n \n[Computer Network (Transport Layer)]\nTCP client \nP \nsuccessfully establishes a connection to TCP server \nQ\n. Let \nP\nN\n denote the sequence number\nin the SYN sent from \nP\n to \nQ\n. Let \nQ\nN\n denote the acknowledge number in the SYN ACK from \nQ\n to \nP\n.\nWhich of the following statements is/are CORRECT ?\n(A) The sequence number \nP\nN\n is chosen randomly by P\n(B) The sequence number \nP\nN\n is always 0 for a new connection.\n(C) The acknowledge number \nQ\nN\n is equal to \nP\nN\n(D) The acknowledge number \nQ\nN\n is equal to \n1\nP\nN\n \uf02b",
+ "answer_text": "(A, D)",
+ "explanation_text": "Sol.\n \n \n1\nq\np\nN\nN\n\uf03d\n\uf02b\nWhere, \np\nN\n is chosen randomly to prevent some kind of attacks.\nHence, the correct option (A) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/29/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/29/exp.webp
new file mode 100644
index 0000000..2fe1225
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/29/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/29/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/29/q.webp
new file mode 100644
index 0000000..292ef49
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/29/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/30/data.json b/frontend/public/assets/gate/cs/questions/2024-M/30/data.json
new file mode 100644
index 0000000..9eb4e3c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/30/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "30",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 30 \n[Computer Organization & Architecture (Instruction Pipelining)]\n \n \nConsider a 5-stage pipelined processor with Instruction Fetch (IF). Instruction Decode (ID). Execute (EX). \n \nMemory Access (MEM), and Register Writeback (WB) stages. Which of the following statements about \n \nforwarding is are CORRECT ? \n \n(A) In a pipelined execution, forwarding means the result from a source stage of an earlier instruction is \n \n \npassed on to the destination stage of a later instruction. \n \n(B) In forwarding, data from the output of the MEM stage can be passed on to the input of the EX stage \n \n \nof the next instruction. \n \n(C) Forwarding cannot prevent all pipeline stalls \n \n(D) Forwarding does not require any extra hardware to retrieve the data from the pipeline stages. \nAns. (A, B, C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n\u2022 \nFor the load instructions memory data is forwarded to execute state with stall.\n\nPAGE\n23\n\n\u2022 \nForwarding can\u2019t prevent all the pipelines stalls.\n\u2022 \nBuffer is used to hold the intermediate results to performed the data.\nHence, the correct option is (A), (B) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/30/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/30/exp.webp
new file mode 100644
index 0000000..88c02d4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/30/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/30/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/30/q.webp
new file mode 100644
index 0000000..4821cac
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/30/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/31/data.json b/frontend/public/assets/gate/cs/questions/2024-M/31/data.json
new file mode 100644
index 0000000..d16057a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/31/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "31",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 31 \n[Computer Network (Concepts of Layering and LAN Technologies)]\n \n \nWhich of the following fields is are modified in the IP header of a packet going out of a network address \n \ntranslation (NAT) device from an internal network to an external network ? \n(A)\n \nSource IP \n(B) Destination IP \n \n(C) Header checksum \n(D) Total length \nAns. (A, C)",
+ "answer_text": "",
+ "explanation_text": "Sol. \nSource I/P and header checksum\nHence, the correct option (A) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/31/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/31/exp.webp
new file mode 100644
index 0000000..44a7304
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/31/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/31/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/31/q.webp
new file mode 100644
index 0000000..cd31466
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/31/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/32/data.json b/frontend/public/assets/gate/cs/questions/2024-M/32/data.json
new file mode 100644
index 0000000..3b1a239
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/32/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "32",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 32 \n \nLet \nA\n and \nB\n be non-empty finite sets such that there exist one-to-one and onto functions (i) from \nA\n to \nB \n \nand (ii) from \nA\nA\n\uf0b4\n to \nA\nB\n\uf0c8\n. The number of possible values of \nA\n is __________.\n[Discrete Mathematics - Set theory & Algebra] \nAns. \n(2 to 2)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nAs \n:\nf\nA\nB\n\uf0ae\nis one-one and onto.\nA\nB\nn\n\uf03d\n\uf03d\nA\nA\nA\nB\n\uf0b4\n\uf0ae\n\uf0c8\n\uf0af\nn\n(If = )\nA\nB\n2\nn\n(If\n,\n)\nA\nB A\nB\n\uf0b9\n\uf0c7\n\uf03d\uf066\n2 ,\nn\n\nAlso,\nf is one to one\nA\nB\nA\nB\n\uf0b4\n\uf03d\n\uf0c8\nn\nn\n\uf03d\nn\nn\n\uf03d\n2\n2\n2\n\uf0af\n \n \n or\n\uf0af\n\n{0,1}\n{0,2}\nSo, possible values of \n2.{1or 2}\nA\n \uf03d\nHence, the correct answer is 2.\n\nPAGE\n24\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/32/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/32/exp.webp
new file mode 100644
index 0000000..f0347f9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/32/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/32/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/32/q.webp
new file mode 100644
index 0000000..6acc3a9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/32/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/33/data.json b/frontend/public/assets/gate/cs/questions/2024-M/33/data.json
new file mode 100644
index 0000000..2401ef8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/33/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "33",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 33 \n \nConsider the operator precedence and associativity rules for the integer the integer arithmetic operators \n \ngiven in the table below.\nOperator \nPrecedence \nAssociativity\n+ \nHighest \nLeft\n- \nHigh \nRight\n* \nMedium \nRight\n/ \nLow \nRight\nThe value of the expression \n3 1 5*2/ 7\n2\n4\n7\n6/ 2\n\uf02b\uf02b\n\uf02b\n\uf02d\uf02d\uf02d\n as per the above rules is ____________.\n[Data Structure \u2013 Stack & Queue] \nAns. 6 to 6",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nFirst, we will solve (+) with left associativity.\n\uf0de\n \n((3 1) 5) 2/ (7 2) 4 7 6/ 2\n\uf02b\n\uf02b\n\uf0b4\n\uf02b\n\uf02d\uf02d\uf02d\n\uf0de\n \n9 2/ 9\n4\n7\n6/ 2\n\uf0b4\n\uf02d\uf02d\uf02d\nNow, we will solve \n( )\n\uf02d\n with right associativity.\n\uf0de\n \n9 2/ (9 (4 (7 6)))/ 2\n\uf0b4\n\uf02d\n\uf02d\n\uf02d\n\uf0de\n \n(9 2) / 6/ 2\n\uf0b4\n\uf0de\n \n(18/ (6/ 2))\n \u2190 \nRight associative\n\uf0de\n \n(18/ 3)\n6\n\uf03d\nHence, the correct answer is 6."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/33/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/33/exp.webp
new file mode 100644
index 0000000..dcaa688
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/33/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/33/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/33/q.webp
new file mode 100644
index 0000000..cdaa929
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/33/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/34/data.json b/frontend/public/assets/gate/cs/questions/2024-M/34/data.json
new file mode 100644
index 0000000..7fb96ab
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/34/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "34",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 34 \n \nThe number of spanning trees in a complete graph of 4 vertices labelled A, B,C, and D is_________.\n[Discrete Mathematics \u2013 Graph Theory] \n \nAns. \n(16 to 16) \nSol.\n \nNo. of spanning tree for complete connected graph,\n2\nn\nn\n \n\uf02d\n\uf03d\n4 2\n2\n4\n4\n16\n\uf02d\n\uf03d\n\uf03d\n\uf03d\n\nHence, the correct answer is 16.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/34/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/34/q.webp
new file mode 100644
index 0000000..5748396
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/34/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/35/data.json b/frontend/public/assets/gate/cs/questions/2024-M/35/data.json
new file mode 100644
index 0000000..0ca6466
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/35/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "35",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 35 \n \nConsider the following two relations, \n( , )\nR A B\n and \n( ,C)\nS A\n;\nR \n \nS\n\nPAGE\n25\n\nA \nB \nA \nC \n 10 \n20 \n10 \n90\n20 \n30 \n30 \n45\n30 \n40 \n40 \n80\n30 \n50\n50 \n95\nThe total number of tuples obtained by evaluating the following expression \n.\n.\n(\n)\nB C\nR A S A\nR\nS\n\uf03c\n\uf03d\n\uf073\nis\n_________. \n[Database \u2013 Relational Model Relational Algebra]\n \nAns. \n(2 to 2) \nSol.\nR.A \nR.B \nS.A \nS.C \n10 \n20 \n10 \n90 \n30 \n40 \n30 \n45 \n30 \n50 \n30 \n45\nR\nS\nR.A = S.A\n \n\uf073\nB\nC\n\uf03c\n=\n\nR.A \nR.B \nS.A \nS.C \n10 \n20 \n10 \n90 \n30 \n40 \n30 \n45\nR\nS\nR.A = S.A\n \n\uf073\nB\nC\n\uf03c\n=\n\n2 rows are there.\nHence, the correct answer is 2.\nQ.36 \u2013 Q.65 Carry TWO marks Each \nQuestion 36\n \n \n \n[Computer Network (Network Layer)]\n \n \nConsider a network path \nP\nQ\nR\n\uf02d\n\uf02d\n between nodes \nP\n and \nR\n via router \nQ\n. Node \nP\n sends a file of size\n6\n10\n bytes to \nR\n via this path by splitting the file into chunks of \n3\n10\n bytes each. Node \nP\n sends these chunks \none after the other without any wait time between the successive chunk transmissions. Assume that the \nsize of extra headers added to these chunks is negligible, and that the chunk size is less than the MTU.\nEach of the links \nP\nQ\n\uf02d\n and \nQ\nR\n\uf02d\n has a bandwidth of \n6\n10\n bits/sec, and negligible propagation latency.\nRouter \nQ\n immediately transmits every packet it receives from \nP\n to \nR\n , with negligible processing and\nqueueing delays. Router \nQ\n can simultaneously receive on link \nP\nQ\n\uf02d\n and transmit on link \nQ\nR\n\uf02d\n.\nAssume \nP\n starts transmitting the chunks at time \n0\nt\n \uf03d\n. \n \nWhich one of the following options gives the time (in seconds, rounded off to 3 decimal places) at which \n \nR\n receives all the chunks of the file ? \n \n(A) 8.000 \n(B) 8.008 \n \n(C) 15.992 \n(D) 16,000 \nAns. \n(B)",
+ "answer_text": "",
+ "explanation_text": "Sol. \n:\n Method 1 \n:\n\nPAGE\n26\n\nThe network has three nodes P, Q, R connected as P-Q-R. P sends 1000 packets each of size 1000 bytes.\nThe transmission time of one packet between two nodes is packet size / Bandwidth.\nWe are given bandwidth is 1 mega bits per second.\nHence we have 8000 / 10\n6\n = 8 milliseconds.\nThe total transmission time \n(Numberof packets+n)*T /\nt\n\uf03d\nhere n is the number of nodes on the path in\nbetween source and destination.\nHence, total time taken \n(1000 1)*8ms\n8008ms\n8.008\n\uf03d\n\uf02b\n\uf03d\n\uf03d\n second\nHence, the correct answer is 8.008.\n:\n Method 2 \n:\nTD\nT\nTD\nT\nQ\nP\nR\n0\nPD\nT\n\uf03d\n0\nPD\nT\n\uf03d\n\nWhere\nTD\nT\n\uf03d\n Transmission Delay\nPD\nT\n\uf03d\n Propagation Delay\n6\n3\n3\n10 Byte\n10\n10 Byte\n\uf03d\n\uf03d\nNumber of Packet\n1000\n\uf03d\n Packet\nTransmission Delay \nMessage length ( )\n(\n)\nBandwidth (\n)\nTD\nL\nT\nBw\n\uf03d\n6\n1000 Byte\nsecond\n10 bit\n\uf03d\n\uf0b4\n3\n3\n1000 8 bit\nsecond\n10\n10 bit\n\uf0b4\n\uf0b4\n\uf03d\n\uf0b4\n3\n8 10 second\n\uf02d\n\uf03d\uf0b4\n8msec\n\uf03d\n\uf0de\n For first packet transmission reach to destination\n(\n)\n(\n)\n(\n)\n(\n)\nTD P\nPD P\nQ\nTD Q\nPD Q\nR\nT\nT\nT\nT\n\uf0ae\n\uf0ae\n\uf02b\n\uf02b\n\uf02b\n\nPAGE\n27\n\n(\n)\n(\n)\nTD P\nTD Q\nT\nT\n\uf02b\n8 msec\n8 msec\n16 msec\n\uf02b\n\uf03d\n\uf0de\n Remaining packet (999) Reach to Destinations\n(\n)\n(\n)\n999\nTD Q\nPD Q\nR\nT\nT\n\uf0ae\n\uf0e9\n\uf0f9\n\uf0b4\n\uf02b\n\uf0eb\n\uf0fb\n(\n)\n999\nTD Q\nT\n\uf0b4\n999 8 msec\n7992 msec\n\uf0b4\n\uf03d\nTotal time (1000 packet)\n16 msec+7992 msec\n\uf03d\n8008 msecond\n\uf03d\n8.008 msecond\n\uf03d\nHence, the correct answer is 8.008."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/35/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/35/exp.webp
new file mode 100644
index 0000000..eb2d399
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/35/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/35/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/35/q.webp
new file mode 100644
index 0000000..519b3bb
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/35/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/37/data.json b/frontend/public/assets/gate/cs/questions/2024-M/37/data.json
new file mode 100644
index 0000000..943e038
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/37/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "37",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 37 \n \n[Complier Design (Syntax Directed Translation)]\n \n \nConsider the following syntax-directed definition (SDD).\nS\nDHTU\n\uf0ae\n \n\uf07b\n\uf07d\n.\n.\n.\n.\n.\n;\nS val\nD val\nH val\nT val\nU val\n\uf03d\n\uf02b\n\uf02b\n\uf02b\n1\n\"\n\"\nD\nM D\n\uf0ae\n \n\uf07b\n\uf07d\n1\n.\n5\n.\n;\nD val\nD val\n\uf03d\n\uf02b\nD\n \uf0ae\uf0ce\n \n\uf07b\n\uf07d\n.\n5;\nD val\n \uf03d\uf02d\n1\n\" \"\nH\nL H\n\uf0ae\n \n\uf07b\n\uf07d\n1\n.\n5 10\n.\n;\nH val\nH val\n\uf03d\n\uf02a\n\uf02b\nH\n \uf0ae\uf0ce\n \n\uf07b\n\uf07d\n.\n10;\nH val\n \uf03d\uf02d\n1\n\" \"\nT\nC T\n\uf0ae\n \n\uf07b\n\uf07d\n1\n.\n5 100\n.\n;\nT val\nT val\n\uf03d\n\uf02a\n\uf02b\nT\n \uf0ae\uf0ce\n \n\uf07b\n\uf07d\n.\n5;\nT val\n \uf03d\uf02d\n\"\n\"\nU\nK\n\uf0ae\n \n\uf07b\n\uf07d\n.\n5;\nU val\n \uf03d\nGiven \u201cMMLK\u201d as the input, which one of the following options is the CORRECT value computed by \nthe SDD (in the attribute \n.\nS val\n ) ? \n \n(A) 45 \n(B) 50 \n \n(C) 55 \n(D) 65 \nAns. \n(A) \nSol.\n\nPAGE\n28\n\n5\n40\n5\n5\n45\n\uf03d\n\uf02b\n\uf02d\uf02b\n\uf03d\nS\n= 5+0 = 5\n= 5\n5 10 10\n\uf03d\uf0b4\n\uf02d\nU\nD\nH\nT\n= \u20135\n= 40\n= 0\n= 5 \u2013 5\nM\nK\nL\nH\n1\n\uf0ce\n= \u201310\nD\n1\n\uf0ce\nM\nD\n1\n= \u20135\n\uf0ce\n\nHence, the correct option is (A).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/37/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/37/q.webp
new file mode 100644
index 0000000..f4a6705
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/37/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/38/data.json b/frontend/public/assets/gate/cs/questions/2024-M/38/data.json
new file mode 100644
index 0000000..82e4e42
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/38/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "38",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)\n\nPAGE\n29",
+ "question_text": "Question 38 \n \n \n[Complier Design (Parsing Techniques)]\n \n \nConsider the following grammar \nG\n , with \nS\n as the start symbol. The grammar \nG\n has three incomplete \nproductions denoted by (1), (2), and (3).\n| (1)\nS\ndaT\n\uf0ae\n|\n| (2)\nT\naS bT\n\uf0ae\n(3) |\nR\n \uf0ae\n\uf0ce\nThe set of terminals is \n\uf07b\n\uf07d\n, , , ,\na b c d f\n. The FIRST and FOLLOW sets of the different non-terminals are as\nfollows.\n\uf07b\n\uf07d\n\uf07b\n\uf07d\n\uf07b\n\uf07d\nFIRST( )\n, ,\n,FIRST( )\n, ,\n,FIRST( )\n,\nS\nc d f\nT\na b\nR\nc\n\uf03d\n\uf03d\n\uf0ce\n\uf03d\n\uf0ce\n\uf07b\n\uf07d\n\uf07b\uf07d\nFOLLOW( )\nFOLLOW( )\n,\n,$ ,FOLLOW( )\nS\nT\nc f\nR\nf\n\uf03d\n\uf03d\n\uf03d\nWhich one of the following options CORRECTLY fills in the incomplete productions ?\n(A) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\nS\nRf\nT\nR\ncTR\n\uf0ae\n\uf0ae\uf0ce\n\uf0ae\n(B) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\nS\nfR\nT\nR\ncTR\n\uf0ae\n\uf0ae\uf0ce\n\uf0ae\n(C) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\nS\nfR\nT\ncT\nR\ncR\n\uf0ae\n\uf0ae\n\uf0ae\n(D) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\nS\nRf\nT\ncT\nR\ncR\n\uf0ae\n\uf0ae\n\uf0ae",
+ "answer_text": "(A)\n\nPAGE\n29",
+ "explanation_text": "Sol.\n \n/\nS\ndaT Rf\n\uf0ae\n/\n/\nT\naS bT\n\uf0ae\n\uf0ce\n/\nR\ncTR\n\uf0ae\n\uf0ce\n( )\n{ , , }\nfirst S\nd c f\n\uf03d\n( )\n{ , , }\nfirst T\na b\n\uf03d\n\uf0ce\n( )\n{ , }\nfirst R\nc\n\uf03d\n\uf0ce\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/38/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/38/exp.webp
new file mode 100644
index 0000000..a1d848b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/38/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/38/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/38/q.webp
new file mode 100644
index 0000000..e4afd2e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/38/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/39/data.json b/frontend/public/assets/gate/cs/questions/2024-M/39/data.json
new file mode 100644
index 0000000..e804e72
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/39/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "39",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 39 \n \n[Complier Design (Code Generation and Optimization)]\n \n \nConsider the following pseudo-code. \n \n \n1:\n1\n1\nL\nt\n \uf03d\uf02d\n2:\n2\n0\nL\nt\n \uf03d\n3:\n3\n0\nL\nt\n \uf03d\n4:\n4\n4\n3\nL\nt\nt\n\uf03d\uf02a\n5:\n5\n4\n2\nL\nt\nt\n\uf03d\uf02a\n6:\n6\n5\nL\nt\nt\nM\n\uf03d\n\uf02a\n7:\n7\n4\n6\nL\nt\nt\nt\n\uf03d\n\uf02b\n8:\n8\n[ 7]\nL\nt\na t\n\uf03d\n9:\nif 8\nmaxgoto 11\nL\nt\nL\n\uf03c\uf03d\n10:\n1\n8\nL\nt\nt\n\uf03d\n11:\n3\n3 1\nL\nt\nt\n\uf03d\n\uf02b\n12:\nif 3\ngoto\n4\nL\nt\nM\nL\n\uf03c\n13:\n2\n2 1\nL\nt\nt\n\uf03d\n\uf02b\n14:\nif 2\ngoto\n3\nL\nt\nN\nL\n\uf03c\n15:\nmax\n1\nL\nt\n\uf03d\nWhich one of the following options CORRECTLY specifies the number of basic blocks and the number \nof instructions in the largest basic block, respectively ? \n \n(A) 6 and 6 \n(B) 6 and 7 \n \n(C) 7 and 7 \n(D) 7 and 6 \nAns. \n(D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nHere; \n1\n3\n4\n10\n11\n13\n,\n,\n,\n,\n,\nL L L L\nL\nL\n and \n15\nL\n are leader.\n\nPAGE\n30\n\nB\n1\n L\n1\nL\n2\nB\n2\nL\n3\nB\n3\nL\n4\nL\n5\nL\n6\nL\n7\nL\n8\nL\n9\nL\n10\nB\n4\nB\n5\n \nL\n11\nL\n12\nB\n6\n L\n13\nL\n14\nB\n7\n L\n15\n\nSo, total 7 basic blocks and B\n3\n is the largest basic block containing 6 statements.\nHence, the correct option is (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/39/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/39/exp.webp
new file mode 100644
index 0000000..deca844
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/39/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/39/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/39/q.webp
new file mode 100644
index 0000000..9910c22
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/39/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/40/data.json b/frontend/public/assets/gate/cs/questions/2024-M/40/data.json
new file mode 100644
index 0000000..61c440f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/40/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "40",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 40 \n \n \n \n \n \n \n \nConsider the following two threads \n1\nT\n and \n2\nT\n update two shared variables \na\n and \nb\n . Assume that \ninitially \n1\na\nb\n\uf03d\n\uf03d\n. Though context switching between threads can happen at any time, each statements of\n1\nT\n or \n2\nT\n is executed atomically without interruption.\n1\nT\n \n2\nT\n1;\na\na\n\uf03d\n\uf02b\n \n2\n;\nb\nb\n\uf03d\uf02a\n1;\nb\nb\n\uf03d\n\uf02b\n \n2\n;\na\na\n\uf03d\uf02a\nWhich one of the following options lists all the possible combinations of values of \na\n and \nb\n after both\n1\nT\n and \n2\nT\n finish execution ? \n \n \n \n[Operating System, Deadlock]\n(A) \n\uf028\n\uf029\uf028\n\uf029\uf028\n\uf029\n4,\n4 ;\n3,\n3 ;\n4,\n3\na\nb\na\nb\na\nb\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n(B) \n\uf028\n\uf029\uf028\n\uf029\uf028\n\uf029\n3,\n4 ;\n4,\n3 ;\n3,\n3\na\nb\na\nb\na\nb\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n(C) \n\uf028\n\uf029\uf028\n\uf029\uf028\n\uf029\n4,\n4 ;\n4,\n3 ;\n3,\n4\na\nb\na\nb\na\nb\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n(D) \n\uf028\n\uf029\uf028\n\uf029\uf028\n\uf029\n2,\n2 ;\n2,\n3 ;\n3,\n4\na\nb\na\nb\na\nb\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d",
+ "answer_text": "(A)",
+ "explanation_text": "Sol. \n:\n Method 1 \n:\n(\n4,\n4);(\n3,\n3);(\n4,\n3)\nA a\nb\na\nb\na\nb\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf03d\n\nPAGE\n31\n\n1\na\n \uf03d\n1\nb\n \uf03d\n1\nT\n \n \n \n \n \n2\nT\n(3) \n1;\na\na\n\uf03d\n\uf02b\n \n \n(1) \n \n2\n;\nb\nb\n\uf03d\uf0b4\n(4) \n1;\nb\nb\n\uf03d\uf02b\n \n \n(2) \n \n2\n;\na\na\n\uf03d\uf0b4\nCase I:\n(1)\n \n \n2 1\n2\nb\n \uf03d\n\uf0b4\uf03d\n \n(3)\n \n \n1 1\n2\na\n \uf03d\uf02b\uf03d\n \n \n \n(4, 3) \n(2)\n \n \n2\n2\n4\na\n \uf03d\n\uf0b4\n\uf03d\n \n(4)\n \n \n1\n2 1\n3\nb\nb\n\uf03d\n\uf02b\uf03d\n\uf02b\uf03d\nLike this we can take all possible combinations.\nHence, the correct option is (A).\n:\n Method 2 \n:\n1\nT\n \n \n \n \n2\nT\n1\nP\n \n1\na\na\n\uf03d\n\uf02b\n \n \n3\nP\n \n2\nb\nb\n\uf03d\uf0b4\n2\nP\n \n1\nb\nb\n\uf03d\n\uf02b\n \n \n4\nP\n \n2\na\na\n\uf03d\n\uf0b4\nTotal Number of possible combinations\n\uf02b\n(2\n2)!\n2! 2!\n\uf0b4\n\uf0b4\uf0b4\n\uf03d\n\uf03d\n\uf0b4\n\uf0b4\n4!\n4 3 2!\n6\n2! 2!\n2! 2!\nCase 1 :\n1 2\na\n \uf03d\n \n1 2 4\nb\n \uf03d\n1\n1\nP\na\na\n\uf03d\n\uf03d\n\uf02b\n \n1 1\n2\na\n\uf03d\n\uf03d\uf02b\uf03d\n2\n1\nP\nb\nb\n\uf03d\n\uf03d\n\uf02b\n \n1 1\n2\nb\n\uf03d\n\uf03d\uf02b\uf03d\n \n4\n4\na\nb\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n\nPAGE\n32\n\n3\n2\nP\nb\nb\n\uf03d\n\uf03d\uf0b4\n \n2 2\n4\nb\n\uf03d\n\uf03d\uf0b4\n\uf03d\n4\n2\nP\na\na\n\uf03d\n\uf03d\uf0b4\n \n2 2\n4\na\n\uf03d\n\uf03d\uf0b4\n\uf03d\nCase 2 :\n1 2\na\n \uf03d\n \n1 2 3\nb\n \uf03d\n1\n1\nP\na\na\n\uf03d\n\uf03d\n\uf02b\n \n1 1\n2\na\n\uf03d\n\uf03d\uf02b\uf03d\n3\n2\nP\nb\nb\n\uf03d\n\uf03d\uf0b4\n \n2 1\n2\nb\n\uf03d\n\uf03d\uf0b4\uf03d\n \n4\n3\na\nb\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n4\n2\nP\na\na\n\uf03d\n\uf03d\uf0b4\n \n2 2\n4\na\n\uf03d\n\uf03d\uf0b4\n\uf03d\n2\n1\nP\nb\nb\n\uf03d\n\uf03d\n\uf02b\n \n2 1\n3\nb\n\uf03d\n\uf03d\n\uf02b\uf03d\nCase 3 :\n1 2\na\n \uf03d\n \n1 2 3\nb\n \uf03d\n1\n1\nP\na\na\n\uf03d\n\uf03d\n\uf02b\n \n1 1\n2\na\n \uf03d\uf02b\uf03d\n3\n2\nP\nb\nb\n\uf03d\n\uf03d\uf02a\n \n2 1\n2\nb\n \uf03d\uf0b4\uf03d\n \n4\n3\na\nb\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n2\n1\nP\nb\nb\n\uf03d\n\uf03d\n\uf02b\n \n2 1\n3\nb\n \uf03d\n\uf02b\uf03d\n4\n2\nP\na\na\n\uf03d\n\uf03d\uf02a\n \n2 2\n4\na\n \uf03d\uf0b4\n\uf03d\nCase 4 :\n1 2 3\na\n \uf03d\n \n1 2 3\nb\n \uf03d\n3\n2\nP\nb\nb\n\uf03d\n\uf03d\uf0b4\n \n2 1\n2\nb\n \uf03d\uf0b4\uf03d\n4\n2\nP\na\na\n\uf03d\n\uf03d\uf0b4\n \n2 1\n2\na\n \uf03d\uf0b4\uf03d\n \n3\n3\na\nb\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n1\n1\nP\na\na\n\uf03d\n\uf03d\n\uf02b\n \n2 1\n3\na\n\uf03d\n\uf03d\n\uf02b\uf03d\n2\n1\nP\nb\nb\n\uf03d\n\uf03d\n\uf02b\n \n2 1\n3\nb\n\uf03d\n\uf03d\n\uf02b\uf03d\nCase 5 :\n1 2 4\na\n \uf03d\n \n1 2 3\nb\n \uf03d\n3\n2\nP\nb\nb\n\uf03d\n\uf03d\uf0b4\n \n2 1\n2\nb\n \uf03d\uf0b4\uf03d\n\nPAGE\n33\n\n1\n1\nP\na\na\n\uf03d\n\uf03d\n\uf02b\n \n1 1\n2\na\n \uf03d\uf02b\uf03d\n \n4\n3\na\nb\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n4\n2\nP\na\na\n\uf03d\n\uf03d\uf0b4\n \n2 2\n4\na\n \uf03d\uf0b4\n\uf03d\n2\n1\nP\nb\nb\n\uf03d\n\uf03d\n\uf02b\n \n2 1\n3\nb\n \uf03d\n\uf02b\uf03d\nCase 6 :\n1 2 4\na\n \uf03d\n \n1 2 3\nb\n \uf03d\n3\n \n:\n2\nP b\nb\n\uf03d\uf0b4\n \n2 1\n2\nb\n\uf03d\n\uf03d\uf0b4\uf03d\n1\n1\nP\na\na\n\uf03d\n\uf03d\n\uf02b\n \n1 1\n2\na\n\uf03d\n\uf03d\uf02b\uf03d\n2\n \n:\n1\nP b\nb\n\uf03d\n\uf02b\n \n2 1\n3\nb\n\uf03d\n\uf03d\n\uf02b\uf03d\n \n4\n3\na\nb\n\uf0e6\n\uf0f6\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n4\n \n:\n2\nP a\na\n\uf03d\uf0b4\n \n2 2\n4\na\n \uf03d\uf0b4\n\uf03d\nPossible value\n\uf07b\n\uf07d\n( , )\n(4,4),(3,3),(4,3)\na b\n \uf03d\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/40/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/40/exp.webp
new file mode 100644
index 0000000..a04a54e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/40/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/40/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/40/q.webp
new file mode 100644
index 0000000..44dd93f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/40/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/41/data.json b/frontend/public/assets/gate/cs/questions/2024-M/41/data.json
new file mode 100644
index 0000000..2ed577d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/41/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "41",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 41 \n \n \n \n \n \n[Data Structure (Array)]\nAn array \n\uf05b\n\uf05d\n82,101,90,11,111,75,33,131,44,93\n is heapified. Which one of the following options represents\nthe first three elements in the heapified array ? \n \n(A) 82, 90, 101 \n(B) 82, 11, 93 \n \n(C) 131, 111, 90 \n(D) 131, 111, 90 \nAns. \n(D) \nSol.\n131\n82\n82\n131\n101\n90\n111\n101\n93\n82\n131\n111\n11\n75\n33\n11\n82\n131\n44\n93\n\nFinal array [131, 111, 90, 101, 93, 75, 33, 11, 44, 82]\n\nPAGE\n34\n\nHence, the correct option is (D).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/41/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/41/q.webp
new file mode 100644
index 0000000..27e7c26
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/41/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/42/data.json b/frontend/public/assets/gate/cs/questions/2024-M/42/data.json
new file mode 100644
index 0000000..d25f641
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/42/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "42",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 42 \n \n \n \n[Algorithm (Complexity Analysis)]\n \n \nConsider the following recurrence relation :\n\uf028\n\uf029\nfor\n1,\n( )\n\uf0ec\n\uf02b\n\uf0b3\n\uf0ef\n\uf03d\uf0ed\nnT\nn\nn\nn\nT n\n\n\uf03d\n\uf0ef\uf0ee\n1\nfor\n1\nn\nWhich one of the following options is CORRECT ?\n(A) \n\uf028\uf029\n\uf028\n\uf029\nloglog\nT n\nn\nn\n\uf03d\uf051\n \n(B) \n\uf028\uf029\n\uf028\n\uf029\nlog\nT n\nn\nn\n\uf03d\uf051\n(C) \n\uf028\uf029\n\uf028\n\uf029\n2\n log\nT n\nn\nn\n\uf03d\uf051\n \n(D) \n\uf028\uf029\n\uf028\n\uf029\n2\n loglog\nT n\nn\nn\n\uf03d\uf051",
+ "answer_text": "(A)",
+ "explanation_text": "Sol. \n \n( )\n(\n)\nT n\nnT\nn\nn\n\uf03d\n\uf02b\n2\nm\nn\n\uf03d\nm\nm\nm\nm\nT\nT\n\uf03d\n\uf02b\n2\n2\n(2 )\n2 . (2 )\n2\nm\nm\nm\nm\nm\nm\nT\nT\nT\nS m\nT\n\uf03d\n\uf03d\n(2 )\n(2 )\n(2 )\n= Let\n( )\n2\n2\n(2 )\n2\n\n2\n( )\n(\n) 1\n2\nm\nS m\nS\n\uf03d\n\uf02b\n(2 )\n2 log\nm\nm\nT\nm\n\uf03d\n( )\nloglog\nT n\nn\nn\n\uf03d\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/42/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/42/exp.webp
new file mode 100644
index 0000000..9cbc505
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/42/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/42/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/42/q.webp
new file mode 100644
index 0000000..5142b0a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/42/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/43/data.json b/frontend/public/assets/gate/cs/questions/2024-M/43/data.json
new file mode 100644
index 0000000..c2264c4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/43/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "43",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 43 \n \n \n \n \n \n[Data Structure (Tree)]\n \n \nConsider a binary min-heap containing 105 distinct elements. Let k be the index (in the underlying array) \nof the maximum element stored in the heap. The number of possible values of k is \n \n(A) 53 \n(B) 52 \n \n(C) 27 \n(D) 1 \nAns. \n(A)\n \nSol. \nA binary heap is a complete binary tree.\nA binary min - heap satisfies min - heap properly this implies that the maximum element can be in the \n \nleaves only.\n\nPAGE\n35\n\nn\n\uf0ea\uf0fa\n\uf0ea\uf0fa\n\uf0eb\uf0fb\nn\n\uf0e9\uf0f9\n\uf0ea\uf0fa\n\uf0ea\uf0fa\nIn binary min heap of \nn \nelements exactly \n2\ninternal node and \n2\nleaf nodes.\nNo. of internal nodes in 105 element \n105\nheap\n52\n2\n\uf0ea\n\uf0fa\n\uf03d\n\uf03d\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n\nNo. of leaves \n105\n52\n53\n\uf03d\n\uf02d\n\uf03d\nHence, the correct option is (A).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/43/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/43/q.webp
new file mode 100644
index 0000000..7648569
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/43/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/44/data.json b/frontend/public/assets/gate/cs/questions/2024-M/44/data.json
new file mode 100644
index 0000000..7878769
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/44/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "44",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B,C,D) \nSol. \n(B) Decomposition rule of functional dependent\n(C) Apply augmentation rule with X on \nw\ny\n\uf0ae\nThen apply transitivity rule to get X, \nw\nz\n\uf0ae\n(D) Definition of Transitivity rule for function dependencies.\nHence, the correct option is (B), (C) and (D).",
+ "question_text": "Question 44 \n \n \n[Database (Database Design Functional)]\n \n \nThe symbol \n\uf0ae\n indicates functional dependency in the context of a relational database. Which of the \nfollowing options is/are TRUE ?\n(A) \n\uf028\n\uf029\n(\n, )\n( ,\n)implies\n,\nX Y\nZ W\nX\nZ W\n\uf0ae\n\uf0ae\n(B) \n(\n, )\n( ,\n)implies (\n, )\nX Y\nZ W\nX Y\nZ\n\uf0ae\n\uf0ae\n(C) \n\uf028\n\uf029\n(\n, )\nand\nimplies (\n,\n)\nX Y\nZ\nW\nY\nX W\nZ\n\uf0ae\n\uf0ae\n\uf0ae\n(D) \n\uf028\n\uf029\nand\nimplies\nX\nY\nY\nZ\nX\nZ\n\uf0ae\n\uf0ae\n\uf0ae",
+ "answer_text": "(B,C,D) \nSol. \n(B) Decomposition rule of functional dependent\n(C) Apply augmentation rule with X on \nw\ny\n\uf0ae\nThen apply transitivity rule to get X, \nw\nz\n\uf0ae\n(D) Definition of Transitivity rule for function dependencies.\nHence, the correct option is (B), (C) and (D).",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/44/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/44/q.webp
new file mode 100644
index 0000000..6042cd8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/44/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/45/data.json b/frontend/public/assets/gate/cs/questions/2024-M/45/data.json
new file mode 100644
index 0000000..56ba95c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/45/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "45",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 45 \n \n \n \n \n[Data Structure (Graph)]\n \n \nLet \nG\n be a directed graph and \nT\n a depth first search (DFS) spanning tree in \nG\n that is rooted at a vertex\nv\n . Suppose \nT\n is also a breadth first search (BFS) tree in \nG\n , rooted at \nv\n . Which of the following \nstatements is/are TRUE for every such graph \nG\n and tree \nT\n ? \n \n(A) There are no back-edges in \nG\n with respect to the tree \nT\n \n \n(B) There are no cross-edges in \nG\n with respect to the tree \nT\n \n \n(C) There are no forward-edges in \nG\n with respect to the tree \nT\n \n \n(D) The only edges in \nG\n are the edges in \nT\n \nAns. \n(C) \n \nSol.\n\nPAGE\n36\n\nA\nE\nB\nC\nD\n\n\nB.F.S\nD.F.S\nA\nA\nB\nB\nE\nE\nD\nD\nC\nC\n\n\nBack edge possible\nCross edge possible\nAll edge of G not in T. Forward edge can\u2019t be there else at would not give same BFS and DFS.\nHence, the correct option is (C).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/45/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/45/q.webp
new file mode 100644
index 0000000..b0f51ff
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/45/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/46/data.json b/frontend/public/assets/gate/cs/questions/2024-M/46/data.json
new file mode 100644
index 0000000..7fc8306
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/46/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "46",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B,C,D) \nSol\n.\n \nPrecedence graph of schedule (s)\n\nPAGE\n37\n\nT\n1\nT\n2\nT\n3\n\nSerial Schedule conflict equal to S are\n1\n3\n2\n1\n3\n2\n(\n)\nT\nT\nT T\nT\nT\n\uf0ae\n\uf0ae\n3\n2\n1\n3\n2\n1\n(\n)\nT\nT\nT T\nT\nT\n\uf0ae\n\uf0ae\n3\n1\n2\n3\n1\n2\n(\n)\nT\nT\nT T\nT\nT\n\uf0ae\n\uf0ae\nHence, the correct option is (B), (C) and (D).",
+ "question_text": "Question 46 \n \n[Database (Transactions and Concurrency Control)]\n \n \nConsider the following read-write schedule \nS\n over three transactions \n1\n2\n,\n,\nT T\n and \n3\nT\n , where the subscripts\nin the schedule indicate transaction IDs : \n \n1\n1\n2\n3\n3\n2\n2\n2\n: ( );\n( ); ( ); ( );\n( ); ( );\n( );\n( );\nS r z w z r x r y w y r y w x w y\nWhich of the following transaction schedules is/are conflict equivalent to \nS\n ?\n(A) \n1 2 3\nTT T\n \n(B) \n1 3 2\nTT T\n(C) \n3 2 1\nT T T\n \n(D) \n3 1 2\nT TT",
+ "answer_text": "(B,C,D) \nSol\n.\n \nPrecedence graph of schedule (s)\n\nPAGE\n37\n\nT\n1\nT\n2\nT\n3\n\nSerial Schedule conflict equal to S are\n1\n3\n2\n1\n3\n2\n(\n)\nT\nT\nT T\nT\nT\n\uf0ae\n\uf0ae\n3\n2\n1\n3\n2\n1\n(\n)\nT\nT\nT T\nT\nT\n\uf0ae\n\uf0ae\n3\n1\n2\n3\n1\n2\n(\n)\nT\nT\nT T\nT\nT\n\uf0ae\n\uf0ae\nHence, the correct option is (B), (C) and (D).",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/46/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/46/q.webp
new file mode 100644
index 0000000..97d5791
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/46/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/47/data.json b/frontend/public/assets/gate/cs/questions/2024-M/47/data.json
new file mode 100644
index 0000000..0cb96ae
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/47/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "47",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A,B) \nSol.\nyz\nyz\nx\n00\n01\n11\n10\n0\n1\n2\n3\n4\n5\n7\n6\n0\n0\n0\n1\n0\n1\n0\n1\n1\n1\nxz\nxy\n\n( , , )\n(0,1,2,4)\nF x y z\n \uf03d\uf070\n\uf0de\n \n( , , )\nF x y z\nxy\nxz\nyz\n\uf03d\n\uf02b\n\uf02b\nSo, \n( , , )\nF x y z\n is dependent on both \nX\n and \nY \nand \nZ\nHence, the correct option is (A) and (B).",
+ "question_text": "Question 47 \n \n \n \n[Digital Logic (Boolean Algebra)]\nConsider a Boolean expression given by \n\uf028\n\uf029\n, ,\n(3,5,6,7)\nF X Y Z\n \uf03d\uf0e5\n.\nWhich of the following statements is/are CORRECT ?\n(A) \n\uf028\n\uf029\n\uf028\n\uf029\n, ,\n0,1,2,4\nF X Y Z\n \uf03d\uf050\n(B) \n\uf028\n\uf029\n, ,\nF X Y Z\nXY\nYZ\nXZ\n\uf03d\n\uf02b\n\uf02b\n(C) \n\uf028\n\uf029\n, ,\nF X Y Z\n is independent of input \nY\n(D) \n\uf028\n\uf029\n, ,\nF X Y Z\n is independent of input \nX\n \u2019",
+ "answer_text": "(A,B) \nSol.\nyz\nyz\nx\n00\n01\n11\n10\n0\n1\n2\n3\n4\n5\n7\n6\n0\n0\n0\n1\n0\n1\n0\n1\n1\n1\nxz\nxy\n\n( , , )\n(0,1,2,4)\nF x y z\n \uf03d\uf070\n\uf0de\n \n( , , )\nF x y z\nxy\nxz\nyz\n\uf03d\n\uf02b\n\uf02b\nSo, \n( , , )\nF x y z\n is dependent on both \nX\n and \nY \nand \nZ\nHence, the correct option is (A) and (B).",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/47/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/47/q.webp
new file mode 100644
index 0000000..46294a9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/47/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/48/data.json b/frontend/public/assets/gate/cs/questions/2024-M/48/data.json
new file mode 100644
index 0000000..b94bd0a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/48/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "48",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B,D)\n \n(A)\n\nPAGE\n39",
+ "question_text": "Question 48 \n \n \n \n \n \n[C-Programming]\n \n \nConsider the following \nC\n function definition. \n \n \nint \nf \n(int \nx\n, int \ny\n) {\n\nPAGE\n38\n\nfor (int \ni\n = 0; \ni \n< \ny\n; \ni++\n) { \n \n \n \n;\nx\nx\nx\ny\n\uf03d\n\uf02b\n\uf02b\n} \n \n \n return \nx; \n \n \n} \n \n \nWhich of the following statements is/are TRUE about the above function ?\n20\n2\n(A) If the inputs are \n20,\n10\nx\ny\n\uf03d\n\uf03d\n, then the return value is less than\n20\n2\n(B) If the inputs are \n20,\n20\nx\ny\n\uf03d\n\uf03d\n, then the return value is greater than\n10\n2\n(C) If the inputs are \n20,\n10\nx\ny\n\uf03d\n\uf03d\n, then the return value is greater than\n20\n2\n(D) If the inputs are \n10,\n20\nx\ny\n\uf03d\n\uf03d\n, then the return value is greater than",
+ "answer_text": "(B,D)\n \n(A)\n\nPAGE\n39",
+ "explanation_text": "Sol. \nLet \ni\nt\n be the value of \nx\n after finishing the i\nth\n loop. Therefore, the returned value is \n1\ny\nt\n \n\uf02d\n.\n0\n2\nt\nx\ny\n\uf03d\n\uf02b\n1\n0\n2\n2(2\n)\n4\n3\nt\nt\ny\nx\ny\ny\nx\ny\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf02b\n\uf03d\n\uf02b\n2\n1\n2\n2(4\n3 )\n8\n7\nt\nt\ny\nx\ny\ny\nx\ny\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf02b\n\uf03d\n\uf02b\n\uf028\n\uf029\n1\n1\n1\n2\n2\n1\n2\n(\n)\ni\ni\ni\ni\nt\nx\ny\nx\ny\ny\n\uf02b\n\uf02b\n\uf02b\n\uf03d\n\uf02b\n\uf02d\n\uf03d\n\uf02b\n\uf02d\nTherefore, returned value \n1\n2 (\n)\ny\ny\nt\nx\ny\ny\n\uf02d\n\uf03d\n\uf03d\n\uf02b\n\uf02d\nA.\n \nWhen \n10\n20\n9\n20,\n10\n2 (30) 10\n2\nx\ny\nt\n\uf03d\n\uf03d\n\uf0de\n\uf03d\n\uf02d\n\uf03e\uf02f\nB.\n \nWhen \n20\n20\n19\n20,\n20\n2 (40)\n20\n2\nx\ny\nt\n\uf03d\n\uf03d\n\uf0de\n\uf03d\n\uf02d\n\uf03e\nC.\n \nWhen \n10\n10\n9\n20,\n10\n2 (30) 10\n2\nx\ny\nt\n\uf03d\n\uf03d\n\uf0de\n\uf03d\n\uf02d\n\uf03c\uf02f\nD.\n \nWhen \n20\n20\n19\n10,\n20\n2 (30)\n20\n2\nx\ny\nt\n\uf03d\n\uf03d\n\uf0de\n\uf03d\n\uf02d\n\uf03e\nHence, the correct option is (B) and (D).\n \nQuestion 49\nLet A be any \nn m\n\uf0b4\n matrix, where \nm\nn\n\uf03e\n. Which of the following statements is/are TRUE about the \nsystem of linear equations \n0\nAx\n \uf03d\n ? \n \n \n[Engineering Mathematics, Linear Algebra]\n(A) There exist at least \nm n\n\uf02d\n linearly independent solutions to this system\n(B) There exist \nm n\n\uf02d\n linearly independent vectors such that every solution is a linear combination of \nthese vectors \n \n(C) There exists a non-zero solution in which at least \nm n\n\uf02d\n variables are 0\n(D) There exists a solution in which at least \nn\n variables are non-zero\nSol.\n \nOption\n \nA:\n rank \n( )\nA\nn\n\uf0a3\nSo number of free columns \n(\n)\nm\nn\n\uf0b3\n\uf02d\n and number. of linear independent solution = number of free \ncolumns\nSo this is TRUE\nOption\n \nB:\n With above explanation, there can be at least \n(\n)\nm\nn\n\uf02d\n free columns, so there are at least \n(\n)\nm\nn\n\uf02d\n LI vectors such that every solution is a linear combination of these vector given statement\nimplies exactly \n(\n)\nm\nn\n\uf02d\n LI vectors which is wrong.\nSo statement is FALSE.\nOption\n \nC:\n This statement is true only if rank \n( )\nA\nn\n\uf03c\n then we will have at least \n(\n1)\nm\nn\n\uf02d\n\uf02b\nfree columns\nSo, there exist non zero solution in which at least \n(\n)\nm\nn\n\uf02d\n variables are zero.\nSo this statement is FALSE\nOption D:\n For any solution vector \nx\n\uf02d\n\uf03d\nm n\nx\nx x\nx\nx\nx\n\uf02b\nn pivot variables\n(\n) free variables\n(\n,\n,......\n,\n,....\n)\nn\nm\n1\n2\n3\n1\n\nFor these \nn\n pivot variable to be non zero, matrix A must have rank (\nA\n) = \nn\n but if rank \n( )\nA\nn\n\uf03c\n, then \nthere will be less than \nn\n pivot variables which have non zero value.\nSo this statement is FALSE.\nHence the correct option is (A)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/48/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/48/exp.webp
new file mode 100644
index 0000000..bc29d08
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/48/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/48/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/48/q.webp
new file mode 100644
index 0000000..6264a8a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/48/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/50/data.json b/frontend/public/assets/gate/cs/questions/2024-M/50/data.json
new file mode 100644
index 0000000..cb2812f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/50/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "50",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B,C) \nSol.\n \nMinimized DFA\n0\n1\n2\n1\n1\n1\n0\n0\n4\n\nFrom minimized DFA we can conclude B and C are False.\nHence, the correct option is (B) and (C).",
+ "question_text": "Question 50 \n \n \n[Theory of Computation (Finite Automata)]\nConsider the 5-state DFA \nM\n accepting the language \n\uf028\n\uf029\n\uf028\n\uf029\n*\n0 1\nL M\n \uf0cc\n\uf02b\n shown below. For any string\n\uf028\n\uf029\n*\n0\n1\nw\n\uf0ce\n\uf02b\n let \n0\n( )\nn w\n be the number of \n0'\ns\n in \nw\n and \n1\n( )\nn w\n be the number of \n1'\ns\n in \nw\n.\nWhich of the following statements is/are FALSE ? \n \n(A) States 2 and 4 are distinguishable in \nM\n \n \n \n(B) States 3 and 4 are distinguishable in \nM\n\nPAGE\n40\n\n(C) States 2 and 5 are distinguishable in \nM\n(D) Any string \nw\n with \n0\n1\n( )\n( )\nn w\nn w\n\uf03d\n is in \n\uf028\n\uf029\nL M",
+ "answer_text": "(B,C) \nSol.\n \nMinimized DFA\n0\n1\n2\n1\n1\n1\n0\n0\n4\n\nFrom minimized DFA we can conclude B and C are False.\nHence, the correct option is (B) and (C).",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/50/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/50/q.webp
new file mode 100644
index 0000000..249b66e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/50/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/51/data.json b/frontend/public/assets/gate/cs/questions/2024-M/51/data.json
new file mode 100644
index 0000000..41b9adb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/51/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "51",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 51 \n \n \n \n \n[Data Structure (Graph)]\n \n \nThe chromatic number of a graph is the minimum number of colors used in a proper coloring of the graph. \nLet \nG\n be any graph with \nn\n vertices and chromatic number \nk\n . Which of the following statements is/are \nalways TRUE ? \n \n(A) \nG\n contains a complete subgraph with \nk\n vertices \n \n(B) \nG\n contains an independent set of size at least \n/\nn k\n(C) \nG\n contains at least \n\uf028\n\uf029\n1 / 2\nk k\n \uf02d\n edges\n(D) \nG\n contains a vertex of degree at least \nk\n \nAns. \n(B, C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n(A) False Because Chromatic no \u2018k\u2019 not necessarily means that graph contains a\nclique on \u2019k\u2019 vertices\n(B) True by virtue of pigeon \u2013 Hole principle\n(C) True because minimum no. of edges between k color class is \n( ,2)\nC k\n(D) False because take a cycle graph on odd vertices, chromatic No is 3 but degree is not 3 for any\nvertex\nHence, the correct option is (B) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/51/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/51/exp.webp
new file mode 100644
index 0000000..ee98a9b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/51/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/51/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/51/q.webp
new file mode 100644
index 0000000..9b9e5d6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/51/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/52/data.json b/frontend/public/assets/gate/cs/questions/2024-M/52/data.json
new file mode 100644
index 0000000..43b3ceb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/52/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "52",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 52 \n \n \n \n[Digital Logic (Boolean Algebra)]\n \n \nConsider the operators \n\uf0e0\n and\ndefined by \n2 ,\na b\na\nb a b\nab\n\uf0e0\uf03d\n\uf02b\n\uf03d\n, for positive integers. Which one of\nthe following statements is/are TRUE ? \n \n(A) Operator \n\uf0e0\n obeys the associative law \n \n(B) Operator\nobeys the associative law\n\nPAGE\n41\n\n(C) Operator \n\uf0e0\n over the operator\nobeys the distributive law \n \n(D) Operator\nover the operator \n\uf0e0\n obeys the distributive law \nAns. \n(B,D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n \n(\n)\n(\n)\na b\nc\nab\nc\nabc\n\uf03d\n\uf03d\n\n(\n)\n(\n)\na\nb c\na\nbc\nabc\n\uf03d\n\uf03d\n\nSo, both are same\n(\n)\n(\n2 )\n(\n2 )\n2\na\nb c\na\nb\nc\na b\nc\nab\nac\n\uf0e0\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\n(\n) (\n)\n(\n) (\n)\n2\na b\na c\nab\nac\nab\nac\n\uf0e0\n\uf03d\n\uf0e0\n\uf03d\n\uf02b\n\nSo, both are same\nHence, the correct option is (B) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/52/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/52/exp.webp
new file mode 100644
index 0000000..365a1e1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/52/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/52/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/52/q.webp
new file mode 100644
index 0000000..15a9c36
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/52/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/53/data.json b/frontend/public/assets/gate/cs/questions/2024-M/53/data.json
new file mode 100644
index 0000000..32b8b80
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/53/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "53",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 53 \n[Computer Organization & Architecture (Memory Organization)]\n \n \nConsider two set-associative cache memory architectures: WBC, which uses the write back policy, and \nWTC, which uses the write through policy. Both of them use the LRU (Least Recently Used) block \nreplacement policy. The cache memory is connected to the main memory. Which of the following \nstatements is/are TRUE ? \n \n(A) A read miss in WBC never evicts a dirty block \n \n(B) A read miss in WTC never triggers a write back operation of a cache block to main memory \n \n(C) A write hit in WBC can modify the value of the dirty bit of a cache block \n \n(D) A write miss in WTC always writes the victim cache block to main memory before loading the\nmissed block to the cache \nAns. \n(B,C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nIn write through policy , data is we never need to perform a \u201cwrite back\u201d operation to remove any entry \nfrom the cache block.\nHence, the correct option is (B) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/53/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/53/exp.webp
new file mode 100644
index 0000000..7cdd79d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/53/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/53/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/53/q.webp
new file mode 100644
index 0000000..5a681e4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/53/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/54/data.json b/frontend/public/assets/gate/cs/questions/2024-M/54/data.json
new file mode 100644
index 0000000..3c31409
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/54/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "54",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 54 \n[Operating System (File system and Device Management)]\n \n \nConsider a 512 GB hard disk with 32 storage surfaces. There are 4096 sectors per track and each sector \nholds 1024 bytes of data. The number of cylinders in the hard disk is _______. \nAns. \n(4096 to 4096) \nSol.\n \nDisk Capacity = No. of Surface \n\uf0b4\n number of track per surface \n\uf0b4\n No. of sector per track \n\uf0b4\n No of byte \nper sector\n\uf0de\n \n39\n5\n12\n10\n2\n2\n2\n2\nx\n\uf03d\n\uf0b4\uf0b4\n\uf0b4\n\uf0de\n \n39\n27\n2\n2\nx\n\uf03d\uf0b4\n\nPAGE\n42\n\n39\n12\n27\n2\n2\n4096\n2\nx\n \uf03d\n\uf03d\n\uf03d\n\nHence, the correct answer is 4096.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/54/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/54/q.webp
new file mode 100644
index 0000000..4c52f75
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/54/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/55/data.json b/frontend/public/assets/gate/cs/questions/2024-M/55/data.json
new file mode 100644
index 0000000..1b0904f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/55/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "55",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 55 \n[Computer Organization & Architecture (Memory Organization)]\n \n \nThe baseline execution time of a program on a 2 GHz single core machine is 100 nanoseconds \n(\n)\nns\n . The\ncode corresponding to 90% of the execution time can be fully parallelized. The overhead for using an \nadditional core is \n10\nns\n when running on a multicore system. Assume that all cores in the multicore system\nrun their share of the parallelized for an equal amount of time. \n \nThe number of cores that minimize the execution time of the program is _______. \nAns. \n(3 to 3)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nExecution time [For \nn\n core] \nParallelized time\nFixed time+ (overhead time (n 1))\nn\n\uf03d\n\uf02b\n\uf0b4\n\uf02d\n90\n(n)\n10 10 (n 1)\nt\nn\n\uf03d\n\uf02b\n\uf02b\n\uf0b4\n\uf02d\n90\n(n)\n10 10n 10\nt\nn\n\uf03d\n\uf02b\n\uf02b\n\uf02d\n90\n( )\n10\nt n\nn\nn\n\uf03d\n\uf02b\nTo minimise \nT\n(\nn\n), derivative of \n( )\nT n\n .\n2\n90\n10\n0\nn\n\uf02d\n\uf02b\n\uf03d\n2\n90\n10\nn\n \n\uf03d\n2\n9\nn\n \uf03d\n3\nn\n \uf03d\uf0b1\n \n3\nn\n \uf03d\nHence, the correct answer is 3."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/55/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/55/exp.webp
new file mode 100644
index 0000000..b05013a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/55/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/55/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/55/q.webp
new file mode 100644
index 0000000..b36549e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/55/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/56/data.json b/frontend/public/assets/gate/cs/questions/2024-M/56/data.json
new file mode 100644
index 0000000..d58427f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/56/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "56",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 56 \n[Computer Organization & Architecture (Memory Organization)]\n \n \nA given program has 25% load/store instructions. Suppose the ideal CPI (cycles per instruction) without \nany memory stalls is 2. The program exhibits 2% miss rate on instruction cache and 8% miss rate on data \ncache. The miss penalty is 100 cycles. The speedup (rounded off to two decimal places) achieved with a \nperfect cache (i.e., with NO data or instruction cache misses) is __________. \nAns. \n(3.00 to 3.00) \nSol.\n \nLet\u2019s assume there are 100 instructions.\n\nPAGE\n43\n\nSo we have 100 fetches for 100 instructions, this will come from instruction cache.\n25% that is 25 instructions are Data fetch/store instructions \u2013 come from data cache\nSo in total 100 fetches we will have 2% i.e., 2 misses \u2013 200 cycles penality.\nFrom the data stream, 8% i.e., 2 misses \u2013 200 cycles penality.\nTotal cycles taken to execute 100 instructions is \n100 2\n200\n200\n600cycles\n\uf02a\uf02b\n\uf02b\n\uf03d\nCPI\n600 /100\n6\n\uf03d\n\uf03d\nIn a perfect caching solution we have 0 misses and hence the CPI will be default i.e., 2 CPI.\nSpeedup achieved \n6 / 2\n3\n\uf03d\n\uf03d\nHence, the correct answer is 3.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/56/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/56/q.webp
new file mode 100644
index 0000000..29cb553
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/56/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/57/data.json b/frontend/public/assets/gate/cs/questions/2024-M/57/data.json
new file mode 100644
index 0000000..7182b00
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/57/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "57",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 57 \n \n \n[Operating System (Process Management-II)]\n \n \nConsider the following code snippet using the fork () and wait () system calls. Assume that the code \ncompiles and runs correctly, and that the system calls run successfully without any errors. \n \nint\n3;\nx\n \uf03d\nwhile (\n0) {\nx\n \uf03e\nfork();\nprintf(\"hello\");\nwait(NULL);\n \n \n \n;\nx\n \uf02d\uf02d\n}\nThe total number of times the printf statement is executed is ________. \nAns. \n(14 to 14)\n \nSol.\n \nEach iteration doubles the number of processes. Initially, one process print \u201chello\u201d. The loop iterates \nthree times, resulting \n3\n2\n8\n\uf03d\n processes. Additionally, two processes from the previous iteration wait for \neach other before proceeding. Thus, the total count is \n8\n4\n2\n14\n\uf02b\n\uf02b\n\uf03d\n\u201dhello\u201d messages printed before the \nloop terminates.\n\n\nPAGE\n44\n\n1\nP\n3\nx\n \uf03d\n2\nx\n \uf03d\n2\nx\n \uf03d\nHello\nHello\n1\nP\n1\nC\nHello\nHello\nHello\nHello\n1\nP\n1\nC\n2\nC\n3\nC\n1\nx\n \uf03d\n1\nx\n \uf03d\n1\nx\n \uf03d\n1\nx\n \uf03d\nHello\nHello Hello\nHello\nHello\nHello\nHello\nHello\n1\nP\n4\nC\n2\nC\n5\nC\n1\nC\n6\nC\n3\nC\n7\nC\n0\nx\n \uf03d\n0\nx\n \uf03d\n0\nx\n \uf03d\n0\nx\n \uf03d\n0\nx\n \uf03d\n0\nx\n \uf03d\n0\nx\n \uf03d\n0\nx\n \uf03d\n\nTotal number of times print (Hello) statement is executed\n2\n4\n8\n14\n\uf02b\n\uf02b\n\uf03d\nHence, the correct answer is 14.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/57/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/57/q.webp
new file mode 100644
index 0000000..0efec35
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/57/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/58/data.json b/frontend/public/assets/gate/cs/questions/2024-M/58/data.json
new file mode 100644
index 0000000..ab79497
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/58/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "58",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 58 \n \n \n[Computer Network (Network Layer)]\n \n \nConsider the entries shown below in the forwarding table of an IP router. Each entry consists of an IP \nprefix and the corresponding next hop router for packets whose destination IP address matches the prefix. \nThe notation \u201c/N\u201d in a prefix indicates a subnet mask with the most significant N bits set to 1.\nPrefix\n \nNext hop router\n \n10.1.1.0/24 \nR1\n10.1.1.128/25 \nR2\n10.1.1.64/26 \nR3\n10.1.1.192/26 \nR4\nThis router forwards 20 packets each to 5 hosts. The IP addresses of the hosts are 10.1.1.16, 10.1.1.72, \n10.1.1.132, 10.1.1.191, and 10.1.1.205. The number of packets forwarded via the next hop router R2 is \n_________. \nAns. \n(40 to 40)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n:\n Method 1 \n:\nHost 1 : IP : 10. 1.1.16\nNet ID when masked with 25 bit netmask \n10.1.1.0\n\uf03d\nPacket to host is not forwarded via R\n2\n.\n(i)\n \nHost 2 : IP : 10.1.1.72\nNet ID with 25 bit netmask \n10.1.1.0\n\uf03d\nPacket to host 2 is not forwarded via R\n2\n.\n\nPAGE\n45\n\n(ii)\n \n Host 3 : IP : 10.1.1.132\nNet ID when masked with 25 bit\nNetmask \n10.1.1.128\n\uf03d\nNet ID when masked with 26 bit netmask \n10.1.1.128\n\uf03d\nPacket to Host 3 is forwarded via R\n2\n.\n(iii)Host 4 : IP : 10.1.1.191\nNet ID when masked with 25 bit netmask \n10.1.1.128\n\uf03d\nNet ID when masked with 26 bit netmask \n10.1.1.128\n\uf03d\nPackets to test 4 is forwarded via R\n2\n.\n(iv)\n \nHost 5 IP : 10.1.1.128\nNet ID when masked with 25 bit netmask \n10.1.1.128\n\uf03d\nNet ID when masked with 26 bit netmask \n10.1.1.192\n\uf03d\nPacket to host 5 is forwarded via R\n4\n.\nRouter will choose more specific option over generic.\n[20 packet host 3 to 20 packet host 5]\n\uf0de\n 40 packet.\nHence, the correct option is 40.\n:\n Method 2 \n:\nRange of all subnetwork in forwarding tables\nSubnet \nRange \nNext Hop Router \n10.1.1.0/24 \n10.1.1.0-10.1.1.255 \n1\nR\n \n10.1.1.128/25 \n10.1.1.128-10.1.1.255 \n2\nR\n \n10.1.1.64/26 \n10.1.1.64-10.1.1.127 \n3\nR\n \n10.1.1.192/26 \n10.1.1.192-10.1.1.255 \n4\nR\nHost (10.1.1.16) it lies in the Range of subnet numbered 1 so it will pass through Router \n1\nR\nFor Host (10.1.1.72) it lies in the Range of subnet numbered \n1\n3\n(\n and \n)\nR\nR\nBut since prefix length of subnet\n3\nR\n (26) is greater than subnet \n1\nR\n (24) the Host ip address will pass through Router \n3\n.\nR\n\nPAGE\n46\n\nFor Host (10.1.1.132) it lies in the Range of subnet numbered \n1\n2\n(\n and \n)\nR\nR\nBut since prefix length of subnet\n2\nR\n (25) is greater than subnet \n1\nR\n (24) the Host ip address will pass through Router \n2\n.\nR\nSimilarly for Host (10.1.1.191) it will pass through Router \n2\nR\n and for Host (10.1.1.205) it will pass\nthrough Router \n4\n.\nR\nTotal Number of Packets Transmitted through \n2\nR\n20\n20\n40 Packets.\n\uf02b\n\uf03d"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/58/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/58/exp.webp
new file mode 100644
index 0000000..5599c28
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/58/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/58/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/58/q.webp
new file mode 100644
index 0000000..fba3b06
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/58/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/59/data.json b/frontend/public/assets/gate/cs/questions/2024-M/59/data.json
new file mode 100644
index 0000000..2a35270
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/59/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "59",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 59 \n[Theory of Computation (Properties of Languages)]\nLet \n\uf028\n\uf029\n, , ,\n P\nG\nV\nS\n\uf03d\n\uf053\n be a context-free grammar in Chomsky Normal Form with \n\uf07b\n\uf07d\n, ,\na b c\n\uf03d\n\uf0e5\n and \nV\ncontaining 10 variable symbols including the start symbol \nS\n . The string \n30\n30\n30\nw\na b c\n\uf03d\n is derivable from\nS\n . The number of steps (application of rules) in the derivation \n*\nS\nw\n\uf0ae\n is _________. \nAns. \n(179 to 179)",
+ "answer_text": "",
+ "explanation_text": "Sol. \nFor CNF, number of steps required is \n2\n1\nw\n \uf02d\n(30\n30\n30)\n90\nw\n \uf03d\n\uf02b\n\uf02b\n\uf03d\n2 90 1 179\n\uf02a\n\uf02d\uf03d\nHence, the correct option is 179."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/59/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/59/exp.webp
new file mode 100644
index 0000000..fa31e3c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/59/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/59/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/59/q.webp
new file mode 100644
index 0000000..a34f0f9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/59/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/6/data.json b/frontend/public/assets/gate/cs/questions/2024-M/6/data.json
new file mode 100644
index 0000000..482a03d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/6/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "6",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 6 \n \nIn the\n \ngiven text, the blanks are numbered (i) \u2013 (iv).Select the best match for all the blanks. \n \nSteve was advised to keep his head ___(i)___ before heading ___(ii)___ to bat; for, while he had a head \n___(iii)___ batting, lie could only do so with a cool head __(iv)__ his shoulders.\n [Verbal Ability, 5]\n \n \n(A) (i) down (ii) down (iii) on (iv) for \n \n(B) (i) on (ii) down (iii) for (iv) on \n \n(C) (i) down (ii) out (iii) for (iv) on \n \n(D) (i) on (ii) out (iii) on (iv) for \nAns. \n(C)\n \nSol.\n \nSteve was advised to keep his head (i) down before heading (ii) out to bat. While he had a head (iii) for \nbatting, he could only do so with a cool head (iv) on his shoulders. The prepositions align appropriately \nwith the intended meaning\nHence, the correct option is (C).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/6/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/6/q.webp
new file mode 100644
index 0000000..1535820
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/6/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/60/data.json b/frontend/public/assets/gate/cs/questions/2024-M/60/data.json
new file mode 100644
index 0000000..1747bf6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/60/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "60",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 60 \n \n \n \n \n[Data Structure (Graph)]\n \n \nThe number of edges present in the forest generated by the DFS traversal of an undirected graph \nG\n with \n100 vertices is 40. The number of connected components in \nG\n is _________. \nAns. \n(60 to 60) \nSol.\n \nGiven a forest has 100 vertices and 40 edge.\nA tree with 100 vertices has (\nn\n - 1) edges.\n(100 1)\n99\n\uf02d\n\uf03d\n edges\nTo convert forest into tree, number of edges that should be added\n= (No. of components \u2013 1)\nLet number of components be \nx\n.\n\uf0de\n \n \n40\n(\n1)\n99\nx\n\uf02b\n\uf02d\n\uf03d\n\uf0de\n \n \n60\nx\n \uf03d\nHence, the correct answer is 60.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/60/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/60/q.webp
new file mode 100644
index 0000000..7e68538
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/60/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/61/data.json b/frontend/public/assets/gate/cs/questions/2024-M/61/data.json
new file mode 100644
index 0000000..76f2fbb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/61/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "61",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 61 \n \n \n[Theory of Computation (Finite Automata)]\n\nPAGE\n47\n\nConsider the following two regular expressions over the alphabet \n\uf07b\n\uf07d\n0,1\n :\n*\n*\n0\n1\nr\n \uf03d\n\uf02b\n*\n*\n01\n10\ns\n \uf03d\n\uf02b\n \n \nThe total number of strings of length less than or equal to 5, which are neither in \nr\n nor in \ns\n , is ________. \nAns. \n(44 to 44)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n0\n1\nr\n\uf02a\n\uf02a\n\uf03d\n\uf02b\n (either all zero or all ones)\n01\n10\ns\n\uf02a\n\uf02a\n\uf03d\n\uf02b\n (Start with zero then all ones OR start with one then all zeros)\n3\n\uf0e5\n2\n{0,1}\n\uf0e5\uf03d\n0\n0\nr\n\uf0ae\n0 1\ns\n\uf0ae\n \n0 0 0\nr\n\uf0ae\n1 0\ns\n\uf0ae\n \n0 0 1\n1 1\nr\n\uf0ae\n \n0 1 0\n0 11\n s\n\uf02d\n1 0 0\ns\n\uf02d\n1 0 1\n11 0\n111\n r\n\uf02d\nTotal number of strings not in \u2018r\u2019 and not in \u2018s\u2019 for string length less than equal to 5.\n\uf028\n\uf029\uf028\n\uf029\uf028\n\uf029\uf028\n\uf029\n2\n3\n4\n5\n2\n4\n2\n4\n2\n4\n2\n4\n\uf03d\n\uf02d\n\uf02b\n\uf02d\n\uf02b\n\uf02d\n\uf02b\n\uf02d\n(4 8 16\n32)\n(4\n4\n4\n4)\n\uf03d\n\uf02b\uf02b\n\uf02b\n\uf02d\n\uf02b\uf02b\uf02b\n60 16\n44\n\uf03d\n\uf02d\n\uf03d\nHence, the correct answer is 44."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/61/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/61/exp.webp
new file mode 100644
index 0000000..39ffea7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/61/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/61/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/61/q.webp
new file mode 100644
index 0000000..075d013
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/61/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/62/data.json b/frontend/public/assets/gate/cs/questions/2024-M/62/data.json
new file mode 100644
index 0000000..88c2700
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/62/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "62",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 62 \n[Operating System (Memory management and Virtual Memory)]\n \n \nConsider a memory management system that uses a page size of 2 KB. Assume that both the physical \nand virtual addresses start from 0. Assume that the pages 0, 1, 2, and 3 are stored in the page frames 1, 3, \n2, and 0, respectively. The physical address (in decimal format) corresponding to the virtual address 2500 \n(in decimal format) is ________. \nAns. \n(6596 to 6596)\n11\n2KB\n2 B\n\uf03d\n\uf03d",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nPage size\nVirtual address \n10\n16\n(2500)\n(9 4)\nC\n\uf03d\n\uf03d\n\nPAGE\n48\n\npageno.\noffset\n1\n001 1100\n0100\n\uf03d\n\n\n\u2022\n \nGiven that page no. 1 is stored in page frame 3. \n\u2022\n \nPhysical address\noffset\n11 001 1100\n0100\n\uf03d\n\n\uf0af\nframe no.\n12\n1 2\n2500\n\uf03d\uf02a\n\uf02b\n \n \n4096\n2500\n\uf03d\n\uf02b\n6596\n\uf03d\nHence, the correct answer is 6596."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/62/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/62/exp.webp
new file mode 100644
index 0000000..b966ca9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/62/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/62/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/62/q.webp
new file mode 100644
index 0000000..15cd3e8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/62/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/63/data.json b/frontend/public/assets/gate/cs/questions/2024-M/63/data.json
new file mode 100644
index 0000000..733aa6d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/63/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "63",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question\n 63 \n \nA bag contains 10 red balls and 15 blue balls. Two balls are drawn randomly without replacement. Given \nthat the first ball drawn is red, the probability (rounded off to 3 decimal places) that both balls drawn are \nred is ___________. \n \n[Engineering Mathematics, Probability]\n(2 Marks)\n \nAns. \n0.370 to 0.380 \nSol.\n \nGiven : \nA bag contains 10 red balls and 15 blue balls. Two balls are drawn randomly without replacement.\nBy using Tree diagram :\n2\nR\n9\n24\n1\nR\n10\n25\n15\n10R\n24\n2\nB\n\uf02b\n2\nR\n15B\n10\n15\n25\n24\n1\nB\n14\n24\n2\nB\nNOTE : \nIn case of Independent events, condition has no significance. we can directly find the probability\n9\n9\n3\n24\n8\nC\nC\n\uf03d\n\uf03d\n\uf03d\nP \n(Red Ball in 2\nnd\n drawn)\n1\n24\n1\nP \n(Red Ball in 2\nnd\n drawn) \n0.375\n\uf03d\nHence, the probability that both balls are red given first ball is red is 0.375.\n\nPAGE\n49\n\nMethod 2 :\n2 Red\n9\n( )\n24\nP E\n\uf0e6\n\uf0f6\n\uf03d\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nBall Drawn\nnd\nst\n1 Red\n10 R\n15 B\n10\n(\n)\n25\nP E\n\uf0e6\n\uf0f6\n\uf03d\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nBall Drawn\n2 Blue\nnd\nBall Drawn\n15\n( )\n24\nP E\n\uf0e6\n\uf0f6\n\uf03d\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n\uf0e6\n\uf0f6\n\uf0b4\n\uf0e7\n\uf0f7\n\uf03d\uf0e7\n\uf0f7\n\uf0e7\n\uf0f7\n\uf0b4\n\uf02b\n\uf0b4\n\uf0e8\n\uf0f8\n10\n9\n25\n24\n(Both Red)\n10\n9\n10\n15\n25\n24\n25\n24\n\n\nP\n90\n9\n(Both Red)\n90 150\n24\nP\n\uf0e6\n\uf0f6\n\uf03d\n\uf03d\n\uf0e7\n\uf0f7\n\uf02b\n\uf0e8\n\uf0f8\n\n(BothRed)\n0.375\nP\n\uf03d\nHence, the correct answer is 0.375.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/63/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/63/q.webp
new file mode 100644
index 0000000..491c853
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/63/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/64/data.json b/frontend/public/assets/gate/cs/questions/2024-M/64/data.json
new file mode 100644
index 0000000..bbe2ccc
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/64/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "64",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(4 to 4) \nSol.\nX\n1\n0\nX\n2\n1\nP\nY\nA\nQ\nX\n3\n0\nC\nX\n4\n1\n\nB\nHere,\n1\n1\nX\n \uf03d\n2\n1\nX\n \uf03d\n3\n0\nX\n \uf03d\n4\n0\nX\n \uf03d\n1\n2\n1\nP\nAX\nAX\nA\nA\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf03d\n3\n4\n0\n0\n0\nQ\nBX\nBX\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf03d\n\uf05c\n \nY\nCP\nCQ\nC\n\uf03d\n\uf02b\n\uf03d\n\uf05c\n \n\uf028\n\uf029\n\uf028\n\uf029\nY\nA\nA\nB\nB C\n\uf03d\n\uf02b\n\uf02b\nABC\nABC\nABC\nABC\n\uf03d\n\uf02b\n\uf02b\n\uf02b\n\uf05c\n \n4 combination of \n( , , )\nA B C\n make \n1\nY\n \uf03d\nHence, the correct answer is 4.",
+ "question_text": "Question 64 \n \n \n[Digital Logic (Combinational Circuit)]\n \n \nConsider a digital logic circuit consisting of three 2-to-1 multiplexers \n1,\n2,\nM\nM\n and \n3\nM\n as shown below. \n1\nX\n and \n2\nX\n are inputs of \n1,\n3\nM\nX\n and \n4\nX\nare inputs of \n2\nM\n. \n, ,\nA B\n and \nC\n are select lines of \n1,\n2,\nM\nM\nand \n3\nM\n , respectively.\nFor an instance of inputs \n1 1,\n2\n1,\n3\n0,\nX\nX\nX\n\uf03d\n\uf03d\n\uf03d\n and \n4\n0\nX\n\uf03d\n, the number of combinations of \n, ,\nA B C\nthat give the output \n1\nY\n \uf03d\n is ________.\n\nPAGE\n50\n",
+ "answer_text": "(4 to 4) \nSol.\nX\n1\n0\nX\n2\n1\nP\nY\nA\nQ\nX\n3\n0\nC\nX\n4\n1\n\nB\nHere,\n1\n1\nX\n \uf03d\n2\n1\nX\n \uf03d\n3\n0\nX\n \uf03d\n4\n0\nX\n \uf03d\n1\n2\n1\nP\nAX\nAX\nA\nA\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf03d\n3\n4\n0\n0\n0\nQ\nBX\nBX\n\uf03d\n\uf02b\n\uf03d\n\uf02b\n\uf03d\n\uf05c\n \nY\nCP\nCQ\nC\n\uf03d\n\uf02b\n\uf03d\n\uf05c\n \n\uf028\n\uf029\n\uf028\n\uf029\nY\nA\nA\nB\nB C\n\uf03d\n\uf02b\n\uf02b\nABC\nABC\nABC\nABC\n\uf03d\n\uf02b\n\uf02b\n\uf02b\n\uf05c\n \n4 combination of \n( , , )\nA B C\n make \n1\nY\n \uf03d\nHence, the correct answer is 4.",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/64/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/64/q.webp
new file mode 100644
index 0000000..c1ea38e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/64/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/65/data.json b/frontend/public/assets/gate/cs/questions/2024-M/65/data.json
new file mode 100644
index 0000000..76bf2ab
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/65/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "65",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 65 \n \n \n[Computer Network (Network Layer)]\n \n \nConsider sending an IP datagram of size 1420 bytes (including 20 bytes of IP header) from a sender to a \nreceiver over a path of two links with a router between them. The first link (sender to router) has an MTU \n(Maximum Transmission Unit) size of 542 bytes, while the second link (router to receiver) has an MTU \nsize of 360 bytes. The number of fragments that would be delivered at the receiver is _________. \nAns. \n(6 to 6)\n \nSol.\n\nPAGE\n51\n\nIP datagram\n20\n1400\n1420 bytes\n\n\nA\nB\nMTU = 360 bytes\nMTU = 542 bytes\nRouter\n\n\nmaxdata\n360\n20\n340B\n\uf02d\n\uf03d\nHeader\nmaxdata\n542\n20\n522 B\n\uf02d\n\uf03d\nSince data must be multiple of 8 \n \n \nSince data must be multiple of 8\n\uf05c\n 520 Byte = \n(8 65)\n\uf0b4\n \n \n \n\uf05c\n Max. data \n336Byte=(8 42)\n\uf03d\n\uf0b4\nFragmentation of 1400 B of data will be,\n1\n1\n2\n20\n336\n20\n520\n1\nP\n \uf03d\n2\nP\n \uf03d\n20\n520\n20\n520\n2\n20\n184\n3\n3\nP\n \uf03d\n20\n360\n\n3\n20\n336\n20\n520\n4\n20\n184\n5\n20\n336\n20\n360\n6\n20\n24\n\nB\nR\nMTU = 340 Byte\n\nThus, we will have total 6 fragments.\nHence, the correct option is (B).\n\n\nPAGE\n52\n\n\uf076\uf076\uf076\uf076\n",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/65/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/65/q.webp
new file mode 100644
index 0000000..9e381b2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/65/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/7/data.json b/frontend/public/assets/gate/cs/questions/2024-M/7/data.json
new file mode 100644
index 0000000..ae41be6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/7/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "7",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A) \nSol.\n2\n4 cm\nr\n\uf070\uf03d\n4 cm\nr\n54 cm\n54 cm\nh\n\nSurface area of \n \nrectangular\n \nsheet\n \n= 54 \u00d7 4 = 216\n \ncm\n2\n\uf0b7\n Cube surface area = \n6\ud835\udc4e\n2\n \n= 216\n \ncm\n2\n\ud835\udc4e= 6\n \ncm\nVolume of cube \n= \ud835\udc4e\n3\n \n= 6\n3\n \n= 216\n \ncm\n3\n\nPAGE\n6\n\n\uf0b7\n Circumference of cylinder \n2\n2\n4\nr\nr\n\uf03d\uf070\uf03d\n\uf0ae\n\uf03d\uf070\n\uf0b7\n Volume of cylindrical tube \n= \ud835\udf0b\ud835\udc5f\n2\n\u210e\n2\n2\n216\n54\n\uf0e6\n\uf0f6\n\uf03d\uf070\n\uf0b4\n\uf03d\n\uf0e7\n\uf0f7\n\uf070\n\uf070\n\uf0e8\n\uf0f8\n2\n2\n216\n\n\ud835\udf0b\n= \ud835\udf0b(\n\ud835\udf0b\n)\n\u00d7 54 =\nvolume of the cylindrical tube\n216/\ud835\udf0b\n1\n\n\ud835\udf0b\nvolume of the cube \n=\n216\n \n=\nHence, the correct option is (A).",
+ "question_text": "Question 7 \n \nA rectangular paper sheet of dimensions \n54cm 4cm\n\uf0b4\n is taken. The two longer edges of the sheet are\njoined together to create a cylindrical tube. A cube whose surface area is equal to the area of the sheet is \nalso taken. \n \nThen, the ratio of the volume of the cylindrical tube to the volume of the cube is\n[Logical reasoning, 3]\n(A) \n1\n\uf070\n \n(B) \n2\n\uf070\n(C) \n3\n\uf070\n \n(D) \n4\n\uf070",
+ "answer_text": "(A) \nSol.\n2\n4 cm\nr\n\uf070\uf03d\n4 cm\nr\n54 cm\n54 cm\nh\n\nSurface area of \n \nrectangular\n \nsheet\n \n= 54 \u00d7 4 = 216\n \ncm\n2\n\uf0b7\n Cube surface area = \n6\ud835\udc4e\n2\n \n= 216\n \ncm\n2\n\ud835\udc4e= 6\n \ncm\nVolume of cube \n= \ud835\udc4e\n3\n \n= 6\n3\n \n= 216\n \ncm\n3\n\nPAGE\n6\n\n\uf0b7\n Circumference of cylinder \n2\n2\n4\nr\nr\n\uf03d\uf070\uf03d\n\uf0ae\n\uf03d\uf070\n\uf0b7\n Volume of cylindrical tube \n= \ud835\udf0b\ud835\udc5f\n2\n\u210e\n2\n2\n216\n54\n\uf0e6\n\uf0f6\n\uf03d\uf070\n\uf0b4\n\uf03d\n\uf0e7\n\uf0f7\n\uf070\n\uf070\n\uf0e8\n\uf0f8\n2\n2\n216\n\n\ud835\udf0b\n= \ud835\udf0b(\n\ud835\udf0b\n)\n\u00d7 54 =\nvolume of the cylindrical tube\n216/\ud835\udf0b\n1\n\n\ud835\udf0b\nvolume of the cube \n=\n216\n \n=\nHence, the correct option is (A).",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/7/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/7/q.webp
new file mode 100644
index 0000000..8cc380e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/7/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/8/data.json b/frontend/public/assets/gate/cs/questions/2024-M/8/data.json
new file mode 100644
index 0000000..53a91ff
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-M/8/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "8",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-M",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(D) \nSol.\n \nGiven :\n3\n( )\nmax( ,\n)\ny\nf x\nx x\n\uf03d\n\uf03d\n\n3\ny\nx\n\uf03d\ny\nx\n\uf03d\nFrom curve equations,\n3\ny\nx\nx\n\uf03d\n\uf03d\n\uf0de\n \n3\n(\n)\n0\nx\nx\n\uf02d\n\uf03d\n\uf0de\n \n2\n(\n1)\n0\nx x\n \uf02d\n\uf03d\n0, 1,\n1\nx\n \uf03d\n\uf02d\nAt points \nP\n, \nQ\n and \nR\n, the curves are not smoothly joined, indicating function is not differentiable. \n \nHence the correct option is (D). \nQuestion 12\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n1\n2\n3\n4\n5\n6\n7\n8\n9\nThe product of all eigenvalues of the matrix\nis \n \n \n \n(1 Mark)\n[Engineering Mathematics, Linear Algebra]\n\nPAGE\n11\n\n(A) \n1\n\uf02d\n \n(B) 0\n(C) 1 \n(D) 2 \n \n(B)\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf03d\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n1\n2\n3\nA\n4\n5\n6\n7\n8\n9",
+ "question_text": "Question 8 \n \nThe pie chart presents the percentage contribution of different macronutrients to a typical 2,000 kcal diet \nof a person. \n \n \n \n \n [Logical reasoning, 1]\n \nMacronutrient energy contribution\nThe typical energy density (kcal/g) of these macronutrients is given in the table.\nMacronutrient \nEnergy density (kcal/g) \nCarbohydrates \n4\nProteins \n4\nUnsaturated fat \n9\nSaturated fat \n9\nTrans fat \n9\nThe total fat (all three types), in grams, this person consumes is \n \n(A) 44.4 \n(B) 77.8 \n \n(C) 100 \n(D) 3,600 \nAns. \n(C) \nSol.\n \nGiven :\n Pie chart presents the percentage contribution of different macronutrients to a typical 2,000 kcal \ndiet of a person.\n\nPAGE\n7\n\nFig. Macronutrient energy contribution \n \nEnergy density (kcal/g) of these macronutrients is\nMacronutrient \nEnergy density (kcal/g) \nCarbohydrates \n4\nProteins \n4\nUnsaturated fat \n9\nSaturated fat \n9\nTrans fat \n9\nTotal fat consumed by the person \n \n \n \n= Saturated fat + Unsaturated fat + Transfat \n \n \n \n= 20% + 20% + 5% \n \n \n \n= 45% \n \nTotal fat consumed by the person in kcal\n45\n2000\n100\n\uf03d\n\uf0b4\n900kcal\n\uf03d\nFrom the given table of energy density \n \nEnergy density of all these fats = 9 kcal /gm\nTotal fat consumed by the person in gram \n900kcal\n9kcal/9m\n\uf03d\n= 100 gm\nHence, the correct option is (C). \nQuestion 9 \n \nA rectangular paper of \n20cm 8cm\n\uf0b4\n is folded 3 times. Each fold is made along the line of symmetry,\nwhich is perpendicular to its long edge. The perimeter of the final folded sheet (in cm) is\n[Logical reasoning, 3]\n \n \n(A) 18 \n(B) 24 \n \n(C) 20 \n(D) 21 \nAns. \n(A)\n\nPAGE\n8\n",
+ "answer_text": "(D) \nSol.\n \nGiven :\n3\n( )\nmax( ,\n)\ny\nf x\nx x\n\uf03d\n\uf03d\n\n3\ny\nx\n\uf03d\ny\nx\n\uf03d\nFrom curve equations,\n3\ny\nx\nx\n\uf03d\n\uf03d\n\uf0de\n \n3\n(\n)\n0\nx\nx\n\uf02d\n\uf03d\n\uf0de\n \n2\n(\n1)\n0\nx x\n \uf02d\n\uf03d\n0, 1,\n1\nx\n \uf03d\n\uf02d\nAt points \nP\n, \nQ\n and \nR\n, the curves are not smoothly joined, indicating function is not differentiable. \n \nHence the correct option is (D). \nQuestion 12\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n1\n2\n3\n4\n5\n6\n7\n8\n9\nThe product of all eigenvalues of the matrix\nis \n \n \n \n(1 Mark)\n[Engineering Mathematics, Linear Algebra]\n\nPAGE\n11\n\n(A) \n1\n\uf02d\n \n(B) 0\n(C) 1 \n(D) 2 \n \n(B)\n\uf0e9\n\uf0f9\n\uf0ea\n\uf0fa\n\uf03d\uf0ea\n\uf0fa\n\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n1\n2\n3\nA\n4\n5\n6\n7\n8\n9",
+ "explanation_text": "Sol.\n \nGiven :\n Rectangular paper of \n20cm 8cm\n\uf0b4\nPaper is folded 3 times along the line of symmetry which is perpendicular to its long edge\n20 cm\n8 cm\n(i) Folding first time\n20 cm\n8 cm\nAxis of folding\n10 cm\n8 cm\n(ii) Folding second time\n10 cm\n8 cm\nAxis of folding\n5 cm\n8 cm\n(iii)Folding third time\n\nPAGE\n9\n\n5 cm\nAxis of folding\n8 cm\n5 cm\nFinal folded sheet\n4 cm\nNow, perimeter of final folded sheet\n2(\n)\nL\nB\n\uf03d\n\uf02b\n2(5 4)\n\uf03d\n\uf02b\n2(9)\n\uf03d\n18cm\n\uf03d\nHence, the correct option is (A). \nQuestion 10 \n \nThe least number of squares to be added in the figure to make AB a line of symmetry is \n[Spitial Aptitude]\nA\nB\n(A) 6 \n(B) 4 \n \n(C) 5 \n(D) 7 \nAns. \n(A) \nSol. \nGiven :\n Figure of squares and line of symmetry is shown is figure below.\nA\nB\nFig.(a) \n \nThe least number of squares to be added in fig.(a) to make AB a line of symmetry is represented by dotted \nlines are numbered as shown in fig.(b).\n1\n4\n2\n5\n6\nA\nB\n3\nFig.(b)\n \n \nHence, the least number of squares to be added in figure to make AB a line of symmetry is 6.\n\nPAGE\n10\n\nHence, correct option is (A).\nQ.11 \u2013 Q.35 Carry ONE mark Each \nQuestion 11\nLet \n:\nf R\nR\n\uf0ae\n be a function such that \n3\n( )\nmax{ ,\n}\n,\nf x\nx x x\n\uf03d\n\uf0ce\nR\n where \nR\n is the set of all real\nnumbers. The set of all points where \n( )\nf x\n is NOT differentiable is \n \n \n(1 Mark)\n[Engineering Mathematics, Calculus]\n(A) \n{ 1,1,2}\n\uf02d\n \n(B) \n{ 2, 1,1}\n\uf02d\uf02d\n(C) \n{0,1}\n \n(D) \n{ 1,0,1}\n\uf02d\nSol.\n \nGiven :\n\nThe product of Eigen values of a Matrix A is equal to the determinant of Matrix A.\n1(45\n48)\n2(36\n42)\n3(32\n35)\nA\n \uf03d\n\uf02d\n\uf02d\n\uf02d\n\uf02b\n\uf02d\n3 12\n9\nA\n \uf03d\uf02d\uf02b\n\uf02d\n0\nA\n \uf03d\nSince the determinant of matrix is zero. So the product of Eigen Value will be zero. \n \nHence the correct option is (B). \nQuestion 13 \n \n \n \n[Digital Logic (Number System)] \n \nConsider a system that uses 5 bits for representing signed integer in 2\u2019s complement format. In this system, \ntwo integers A and B are represented as \n01010\nA\n \uf03d\n and \n11010\nB\n \uf03d\n. Which one of the following operations \nwill result in either an arthimetic overflow or an arithmetic underflow ? \n \n(A) \nA\nB\n\uf02b\n \n(B) \nA\nB\n\uf02d\n \n \n(C) \nB\nA\n\uf02d\n \n(D) \n2*\n B\n \nAns. \n(B)\nSol. \n \nA = 43210\n4\n3\n2\n0\n(0 2\n1 2\n0 2\n1 2' 0 2 )\n(8\n2)\n10\n\uf03d\n\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf03d\n\uf02b\n\uf03d\nB = 43210 \n4\n3\n2\n0\n( 1 2\n1 2\n0 2\n1 2' 0 2 )\n( 16 8\n2)\n6\n\uf02d\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf03d\uf02d\n\uf02b\uf02b\n\uf03d\uf02d\nA = 10\nB = \u20136\nRange of 2\u2019s compliment is 5 bit used \n1\n1\n( (2\n)to (2\n1))\nN\nN\n\uf02d\n\uf02d\n\uf03d\uf02d\n\uf02b\n\uf02d\n5 1\n5 1\n( (2\n)to (2\n1))\n\uf02d\n\uf02d\n\uf02d\n\uf02b\n\uf02d\n( 16to15)\n\uf03d\uf02d\n(1) \n6 ( 10)\n16(Inrange)\nB\nA\n\uf02d\n\uf03d\uf02d\uf02d\uf02b\n\uf03d\uf02d\n(2) \n10 ( 6)\n10 6 16\nA B\n\uf02d\n\uf03d\n\uf02d\uf02d\n\uf03d\n\uf02b\uf03d\n (Out range)\nOut of Range (overflow)\nHence, the correct option is (B).\n\nPAGE\n12\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/8/exp.webp b/frontend/public/assets/gate/cs/questions/2024-M/8/exp.webp
new file mode 100644
index 0000000..8af2001
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/8/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-M/8/q.webp b/frontend/public/assets/gate/cs/questions/2024-M/8/q.webp
new file mode 100644
index 0000000..30e1200
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-M/8/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/1/data.json b/frontend/public/assets/gate/cs/questions/2024-N/1/data.json
new file mode 100644
index 0000000..0fd2756
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/1/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "1",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 1\n \n \n \nIf \u2018\n\uf0ae\n\u2019denotes increasing order of intensity, then the meaning of the words [walk \n\uf0ae\n jog \n\uf0ae\n sprint] is \nanalogous to [bothered \n\uf0ae\n _________ \n\uf0ae\n daunted]. \n \nWhich one of the given options is appropriate to fill the blank? \n \n \n[Verbal Ability, 1]\n \n \n(A) Phased \n(B) Phrased \n \n(C) Fazed \n(D) Fused \nAns. \n(C) \nSol. \nGiven : \n \n[walk\n\uf0ae\njog \n\uf0ae\n sprint] \n \n\u2018\n\uf0ae\n\u2019 denote increasing order of intensity \n \n[bothered \n\uf0ae\n ____\n\uf0ae\n daunted] \n \nMeaning of given words \n \nwalk \n\uf0ae\n to move or go somewhere by putting one foot in front of the other on the ground, but without \nrunning \n \njog \n\uf0ae\n to run slowly especially as a form of exercise \n \nsprint \n\uf0ae\n to run a short distances as fast as you can \n \nbothered \n\uf0ae\n worried about something \n \ndaunted \n\uf0ae\n to frighten or to worry some body by being too big or difficult \n \nFrom options \n \n(A) Phased \n\uf0ae\n carried out in gradual stages, staggered \n \n(B) Phrased \n\uf0ae\nto express something in a particular way. \n \n(C) Fazed \n\uf0ae\n to make some body worried or nervous \n \n(D) Fused\n\uf0ae\njoined or blended to form a single entity. \n \nFrom the above options and there meaning use see that options (A), (B) and (D) are not appropriate for \ngiven analogy and option (C) is logical in the analogy \n \nHence, correct option is (C). \nQuestion 2 \n \nTwo wizards try to create a spell using all the four elements, water, air, fire, and earth. For this, they decide \nto mix all these elements in all possible orders. They also decide to work independently. After trying all \npossible combination of elements, they conclude that the spell does not work. \n \nHow many attempts does each wizard make before coming to this conclusion, independently?\n[Numerical Ability, 4]\n \n \n(A) 24 \n(B) 48 \n \n(C) 16 \n(D) 12 \nAns. \n(A)\n\nPAGE\n2\n",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nCombination of \n= 4! = 24\n \n4 element\n(water, air, fire and earth)\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/1/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/1/exp.webp
new file mode 100644
index 0000000..26d4db6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/1/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/1/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/1/q.webp
new file mode 100644
index 0000000..3a342b1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/1/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/10/data.json b/frontend/public/assets/gate/cs/questions/2024-N/10/data.json
new file mode 100644
index 0000000..d7f98fd
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/10/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "10",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(C) \nSol.\n \nTo transfer 8 bytes, it requires 1 cycle time.\n\nPAGE\n8\n\n1 cycle \n1 MHZ\n0.25\n4\n\uf03d\n\uf03d\nmicro sec.\n% of time CPU Block \nTransfer timetomemory\nPreparation time\n\uf03d\n0.25\n0.01\nprep.time\n\uf03d\nPrep.time = 25 microsecond\n\nIn \n25\u03bcs\n 8 Byte data transferred\n\uf05c\n In \n25\u03bcs\n \n8 8\n\uf0b4\nbit data transferred\n\uf05c\n In 1 second data transferred\n\uf0b4\n\uf03d\n\uf0b4\n second\n6\n8 8bit\n25 10\n\uf02d\n6\n2.56 10 bps\n\uf03d\n\uf0b4\n25,60,0000\n\uf03d\n bit per second\nHence, the correct option is (C)",
+ "question_text": "Question 10 \n \nIn the \n4 4\n\uf0b4\n array shown below, each cell of the three rows has either a cross (x) or a number.\n\nPAGE\n7\n\n1\n4\n3\n5\n5\n4\n3\n6\nThe number in a cell represents the count of the immediate neighboring cells (left, right, top. bottom, \ndiagonals) NOT having a cross (\nX\n). Given that the last row has no crosses (\nX\n), the sum of the four \nnumbers to be filled in the last row is \n \n \n \n \n[\nLogical Reasoning, 3]\n(A) 11 \n(B) 10 \n \n(C) 12 \n(D) 9 \nAns. \n(A) \nSol.\n1\nX\n4\n3\n5\nWhatever element\ncame on this box\u2019s\nboundary that all\nare neighbores are\nof circled = 5\nX\n5\n4\n3\nX\n6\nX\ntotal neighores\nof = 5\n1\n\ud835\udc08\n\ud835\udc2c\ud835\udc2d\n\ud835\udc29\ud835\udc25\ud835\udc1a\ud835\udc1c\ud835\udc1e\u2236\n \nIt has 2 neighbors so value \n= 2\n \n \n \n \n \nII\nnd\n \n\ud835\udc29\ud835\udc25\ud835\udc1a\ud835\udc1c\ud835\udc1e \n:\n \nIt\n has 4 neighbors so value \n= 4\n \n \nIII\nrd\n place :\n It has 3 neighbors so value \n= 3\n \nIV\nth\n place :\n It has 2 neighbor so value \n= 2\nst\n2\nnd\n3\nrd\n4\nth\n2 \n4 \n3 \n2\nSum of Last row\n = 2 + 4 + 3 + 2 = 11\n \n \nHence, the correct option is (A).\nQ.11 \u2013 Q.35 Carry ONE mark Each \nQuestion 11 \n[Computer Organization & Architecture (Input Output Organization)]\nConsider a computer with a 4 MHz processor. Its DMA controller can transfer 8 bytes in 1 cycle from a \ndevice to main memory through cycle stealing at regular intervals. Which one of the following is the data \ntransfer rate (in bits per second) of the DMA controller if 1% of the processor cycles are used for DMA?\n(A) 25,60,000 \n(B) 32,00\n(C) 25,60,000 \n(D) 32,000",
+ "answer_text": "(C) \nSol.\n \nTo transfer 8 bytes, it requires 1 cycle time.\n\nPAGE\n8\n\n1 cycle \n1 MHZ\n0.25\n4\n\uf03d\n\uf03d\nmicro sec.\n% of time CPU Block \nTransfer timetomemory\nPreparation time\n\uf03d\n0.25\n0.01\nprep.time\n\uf03d\nPrep.time = 25 microsecond\n\nIn \n25\u03bcs\n 8 Byte data transferred\n\uf05c\n In \n25\u03bcs\n \n8 8\n\uf0b4\nbit data transferred\n\uf05c\n In 1 second data transferred\n\uf0b4\n\uf03d\n\uf0b4\n second\n6\n8 8bit\n25 10\n\uf02d\n6\n2.56 10 bps\n\uf03d\n\uf0b4\n25,60,0000\n\uf03d\n bit per second\nHence, the correct option is (C)",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/10/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/10/q.webp
new file mode 100644
index 0000000..4ae3560
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/10/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/12/data.json b/frontend/public/assets/gate/cs/questions/2024-N/12/data.json
new file mode 100644
index 0000000..9f945d5
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/12/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "12",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 12 \n \n \n \n[Digital Logic (Boolean Algebra)]\nLet \np\n and \nq\n be the following propositions :\n:\np\n Fail grade can be given.\n:\nq\n Student scores more than 50% marks.\nConsider the statement: \u201cFail grade cannot be given when student scores more than 50% marks.\u201d \n \nWhich one of the following is the CORRECT representation of the above statement in propositional logic \n? \n \n(A) \nq\np\n\uf0ae\uf0d8\n \n(B) \nq\np\n\uf0ae\n(C) \np\nq\n\uf0ae\n \n(D) \np\nq\n\uf0d8\n\uf0ae",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n \nQ\n when \nP\n means \nP\nQ\n\uf03d\n\uf0ae\nGiven statement\n:\np\n Fail grade can be given\n:\nq\n Student scores more then 50% marks\n:\np\nFail grade cannot be given\n\nPAGE\n9\n\nSo, Fail grade cannot be given when student score more than 50 % marks\n(\n)\nQ\nP\n\uf0ae\n\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/12/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/12/exp.webp
new file mode 100644
index 0000000..bc7d0d2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/12/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/12/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/12/q.webp
new file mode 100644
index 0000000..1d90151
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/12/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/13/data.json b/frontend/public/assets/gate/cs/questions/2024-N/13/data.json
new file mode 100644
index 0000000..67ed181
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/13/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "13",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 13 \n \n \n \n \n \n[C-Programming]\n \n \nConsider the following C program. Assume parameter to function are evaluated from right to left. \n \n#include \n \nint g(int p) {printf (\u201c%d\u201d, p); return p;} \n \nint h (int q) {printf (\u201c%d\u201d, q); return q;} \n \nvoid f (int x, int y){\ng(x);\nh(y);\n}\nint main () {\nf(g(10), h(20));\n}\nWhich one of the following options is the CORRECT output of the above C program?\n(A) 20101020 \n(B) 10202010\n(C) 20102010 \n(D) 10201020",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\nint h(int q) {\nprintf (\u201d%d\u201d,q);\nint g(int p) {\nprintf (\u201d%d\u201d,p);\n}\n}\n10\n20\nreturn p;\nreturn q;\n(ii)\n(i)\nint main()\n{\n f(g(10), h(20));\n}\n\n20\n10\nAs its mentioned \u201cparameters to a function are evaluated from right to left\u201d\nSo, h() will be will be evaluated first, and it will print 20 first then g() will be evaluated and it will\n\nPAGE\n10\n\n(i)\nint g(int p) {\nprintf (\u201d%d\u201d,p);\nreturn p;\n}\n10\n10\nx\nvoid f (int , int ){\nx\ny\ng( );\nx\nh( );\ny\n}\n20\nint h(int q) {\nprintf (\u201d%d\u201d,q);\nreturn q;\n(ii)\n20\n}\ny\nint main ( ) {\nf\n (10, 20);\n}\n\nNow as \ng\n() and \nh\n() both function will return 10 and 20 respectively, So now \n(10,20)\nF\n will be called from \n \nthen again \n()\ng\n and \n()\nh\n will be called and 10 and 20 will be pointed respectively.\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/13/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/13/exp.webp
new file mode 100644
index 0000000..68a769c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/13/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/13/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/13/q.webp
new file mode 100644
index 0000000..c0044d4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/13/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/14/data.json b/frontend/public/assets/gate/cs/questions/2024-N/14/data.json
new file mode 100644
index 0000000..fbdb2ac
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/14/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "14",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B)\n\nPAGE\n11",
+ "question_text": "Question 14 \n[Computer Organization & Architecture (Machine Instruction and Addressing)]\n \n \nThe format of a single \u2013 precision floating - point number as per the \nIEEE 754 \nstandard is :\nSign \n(1 bit)\nExponent\nMantissa\n(23 bits) \n \nChoose the largest floating - point number among the following options. \n \n(A)\n(8 bits)\nSign \nExponent \nMantissa \n0 \n0111 1111 \n1111 1111 1111 1111 1111 1111\n(B) \n \n \nSign \nExponent \nMantissa \n0 \n1111 1110 \n1111 1111 1111 1111 1111 1111\n(C) \n \n \nSign \nExponent \nMantissa \n0 \n1111 1111 \n1111 1111 1111 1111 1111 111\n(D)\nSign \nExponent \nMantissa \n0 \n0111 1111 \n0000 0000 0000 0000 0000 000",
+ "answer_text": "(B)\n\nPAGE\n11",
+ "explanation_text": "Sol.\n \nAs per described IEEE 754\nSingle precision format\nSign : 0\nExponent : 11111110\nMantissa : 23 1\u2019s\nWill give maximum value.\nHence, the correct option is (B)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/14/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/14/exp.webp
new file mode 100644
index 0000000..7c73546
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/14/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/14/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/14/q.webp
new file mode 100644
index 0000000..99734d4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/14/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/15/data.json b/frontend/public/assets/gate/cs/questions/2024-N/15/data.json
new file mode 100644
index 0000000..3095621
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/15/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "15",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 15 \n[Algorithm (Complexity Analysis & Asymptotic Notation)]\n \n \nLet \n( )\nT n\n be the recurrence relation defined as follows :\n(0)\n1,\nT\n\uf03d\n(1)\n2,\nT\n\uf03d\n and\n( )\n5 (\n1)\n6 (\n2)\nT n\nT n\nT n\n\uf03d\n\uf02d\n\uf02d\n\uf02d\n for \n2\nn\n \uf0b3\nWhich one of the following statements is TRUE ?\n(A) \n( )\n(2 )\nn\nT n\n \uf03d\uf051\n \n(B) \n( )\n( 2 )\nn\nT n\nn\n\uf03d\uf051\n(C) \n( )\n(3 )\nn\nT n\n \uf03d\uf051\n \n(D) \n( )\n( 3 )\nn\nT n\nn\n\uf03d\uf051",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n \n:\n Method 1 \n:\n0\n(0)\n1\n2\nT\n\uf03d\uf03d\n1\n(1)\n2\n2\nT\n\uf03d\n\uf03d\n2\n(2)\n5 (1) 6 (0)\n5 2 6 1 10 6\n4\n2\nT\nT\nT\n\uf03d\n\uf02d\n\uf03d\uf0b4\uf02d\uf0b4\uf03d\n\uf02d\uf03d\n\uf03d\n3\n(3)\n5 (2) 6 (1)\n5 4 6 2\n20 12\n8\n2\nT\nT\nT\n\uf03d\n\uf02d\n\uf03d\uf0b4\uf02d\uf0b4\uf03d\n\uf02d\n\uf03d\n\uf03d\n\uf05c\n \n( )\n(2 )\nn\nT n\n \uf03d\uf071\nHence, the correct option is (A).\n:\n Method 2 \n:\n(0)\n1\nT\n\uf03d\n(1)\n2\nT\n\uf03d\n( )\n5 (\n1)\n6 (\n2)\nT n\nT n\nT n\n\uf03d\n\uf02d\n\uf02d\n\uf02d\n\nPAGE\n12\n\n( )\n5 (\n1)\n6 (\n2)\n0\nT n\nT n\nT n\n\uf02d\n\uf02d\n\uf02b\n\uf02d\n\uf03d\nRecurrence relation :\n2\n5\n6\n0\nP\nP\n\uf02d\n\uf02b\n\uf03d\n2\n3\n2\n6\n0\nP\nP\nP\n\uf02d\n\uf02d\n\uf02b\n\uf03d\n(\n3)\n2(\n3)\n0\nP P\nP\n\uf02d\n\uf02d\n\uf02d\n\uf03d\n(\n2)(\n3)\n0\nP\nP\n\uf02d\n\uf02d\n\uf03d\n2\nP\n \uf03d\n \n3\nP\n \uf03d\n1\n2\n( )\n.\nn\nn\nT n\nC P\nC P\n\uf03d\n\uf02b\n1\n2\n( )\n2\n3\nn\nn\nT n\nC\nC\n\uf03d\n\uf02b\n \n \n \n\u2026(i)\n0\n0\n1\n2\n0\n(0)\n2\n3\nn\nT\nC\nC\n\uf03d\n\uf03d\n\uf02b\n1\n2\n1\nC\nC\n\uf03d\n\uf02b\n \n \n \n\u2026(iii)\n1\nn\n \uf03d\n \n1\n2\n(1)\n2'\n3'\nT\nC\nC\n\uf03d\n\uf02b\n1\n2\n2\n2\n3\nC\nC\n\uf03d\n\uf02b\n \n \n \n\u2026(iv)\nSolve equation (iii) and (iv)\n1\n1\nC\n \uf03d\n \n2\n0\nC\n \uf03d\n1\n2\n( )\n2\n3\nn\nn\nT n\nC\nC\n\uf03d\n\uf02b\n( )\n2\nn\nT n\n \uf03d\n( )\n(2 )\nn\nT n\n \uf03d\uf071\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/15/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/15/exp.webp
new file mode 100644
index 0000000..950cfab
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/15/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/15/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/15/q.webp
new file mode 100644
index 0000000..df606a4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/15/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/16/data.json b/frontend/public/assets/gate/cs/questions/2024-N/16/data.json
new file mode 100644
index 0000000..6de13e3
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/16/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "16",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 16\nLet \n( )\nf x\n be a continuous function from \nR \nto\n R \nsuch that \n( ) 1\n(2\n)\nf x\nf\nx\n\uf03d\uf02d\n\uf02d\n2\n0\n( )\nf x dx\n\uf0f2\n? \n \n(1 Mark)\nWhich one of the following options is the CORRECT value of\n[Engineering Mathematics, Calculus] \n \n(A) 0 \n(B) 1 \n \n(C) 2 \n(D) \u20131 \nAns. \n(B) \nSol.\n \nGiven :\n\nPAGE\n13\n\n( )\nf x\n is a continuous function from \nR \nto \nR\n.\n( )\n1\n(2\n)\nf x\nf\nx\n\uf03d\uf02d\n\uf02d\nNote :\nb\nb\na\na\nf x dx\nf a\nb\nx dx\n\uf03d\n\uf02b\n\uf02d\n\uf0f2\n\uf0f2\n\u2022 \n( )\n(\n)\nNow according to question\n2\n2\n0\n0\n( )\n(2\n)\nI\nf x\nf\nx dx\n\uf03d\n\uf03d\n\uf02d\n\uf0f2\n\uf0f2\n \n \n \n\u2026(i)\n\n2\n[1\n(2\n)]\nI\nf\nx dx\n\uf03d\n\uf02d\n\uf02d\n\uf0f2\n\n0\n2\n2\n0\n0\n1\n(2\n)\nI\ndx\nf\nx dx\n\uf03d\n\uf02d\n\uf02d\n\uf0f2\n\uf0f2\n\nFrom equation (i)\n2\n0\n[ ]\nI\nx\nI\n\uf03d\n\uf02d\n\n2\n2\nI\n \uf03d\n \n \n \n1\nI\n \uf03d\n2\n( )\n1\nI\nf x dx\n\uf03d\n\uf03d\n\uf0f2\n\n0\nHence, the correct option is (B). \nQuestion 17 \n \n \n \n \n[Data Structure (Graph)]\n \n \nLet \nA\n be the adjacency matrix of a simple undirected graph \nG\n. Suppose \nA\n is its own inverse. Which one\nof the following statements is always TRUE?\n(A) \nG \nis a cycle \n(B) \nG\n is a perfect matching\n(C) \nG\n is a complete graph \n(D) There is no such graph \nG",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\n \nWe know that\nEvery adjacent matrix is symmetric.\n1\nT\nA\nA\nA\n\uf02d\n\uf03d\n\uf03d\n\nn\nA\nAA\nA A\nI\n\uf03d\n\uf03d\n\uf03d\n2\nT\nT\nAbove results in the orthogonal matrix as given, the graph is simple which means that it consists of only \n0 and 1.\nFrom this we can conclude that if any vertex \ni\nV\n is connected to vertex \nJ\nV\n then similarly vertex \nJ\nV\n should\nalso connected to vertex \ni\nV\n , hence it will cover the entire graph. Hence, it will results in perfect matching.\n\nPAGE\n14\n\nHence, the correct option is (B)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/16/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/16/exp.webp
new file mode 100644
index 0000000..83271ce
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/16/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/16/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/16/q.webp
new file mode 100644
index 0000000..1b3d477
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/16/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/18/data.json b/frontend/public/assets/gate/cs/questions/2024-N/18/data.json
new file mode 100644
index 0000000..e69560d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/18/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "18",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B) \nSol.\n \nGiven :\n Six unbiased dice are rolled simultaneously.\n6\n(6)\n\uf03d\nTotal case of six dice\nNumber of favorable out comes \n6!\n\uf03d\nTherefore, the probability of such events\n6\n6!\n6 5 4 3 2 1\n(6)\n(46656)\n\uf0b4\uf0b4\uf0b4\uf0b4\uf0b4\n\uf03d\n\uf03d\n5\n324\n\uf03d\nHence the correct option is (B). \nQuestion 19 \n \n \n[Database (ER Model)]\n \n \nOnce the DBMS informs the user that a transaction has been successfully completed, its effect should\npersist even if the system crashes before all its changes are reflected on disk. This property is called\n(A) Durability \n(B) Atomicity\n(C) Consistency \n(D) Isolation\n \n(A)",
+ "question_text": "Question 18\nWhen six unbiased dice are rolled simultaneously, the probability of getting all distinct numbers (i.e., 1, \n2, 3, 4, 5, and 6) is \n \n \n[Engineering Mathematics, Probability]\n(1 Mark)\n(A) \n1\n324\n \n \n(B) \n5\n324\n(C) \n7\n324\n \n \n(D) \n11\n324",
+ "answer_text": "(B) \nSol.\n \nGiven :\n Six unbiased dice are rolled simultaneously.\n6\n(6)\n\uf03d\nTotal case of six dice\nNumber of favorable out comes \n6!\n\uf03d\nTherefore, the probability of such events\n6\n6!\n6 5 4 3 2 1\n(6)\n(46656)\n\uf0b4\uf0b4\uf0b4\uf0b4\uf0b4\n\uf03d\n\uf03d\n5\n324\n\uf03d\nHence the correct option is (B). \nQuestion 19 \n \n \n[Database (ER Model)]\n \n \nOnce the DBMS informs the user that a transaction has been successfully completed, its effect should\npersist even if the system crashes before all its changes are reflected on disk. This property is called\n(A) Durability \n(B) Atomicity\n(C) Consistency \n(D) Isolation\n \n(A)",
+ "explanation_text": "Sol.\n \nACID property\nChanges to database made by committed transaction must persist in spite of any failure.\nResponsibility of durability = Recovery management system\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/18/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/18/exp.webp
new file mode 100644
index 0000000..229865f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/18/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/18/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/18/q.webp
new file mode 100644
index 0000000..c5250a1
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/18/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/20/data.json b/frontend/public/assets/gate/cs/questions/2024-N/20/data.json
new file mode 100644
index 0000000..1df5642
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/20/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "20",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 20 \n \n \n[Database (ER Model)]\nIn the context of owner and weak entity sets in the ER (Entity - Relationship) data model, which one of \nthe following statements is TRUE ?\n(A) The weak entity set MUST have total participation in the identifying relationship\n\nPAGE\n15\n\n(B) The owner entity set MUST have total participation in the identifying relationship\n(C) Both weak and owner entity sets MUST have total participation in the identifying relationship\n(D) Neither weak entity set nor owner entity set MUST have total participation in the identifying \n \n \nrelationship",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n \nThe weak entity set must participate totally in the identify weak relationship usually, there exist one to \n \nmany relationship between strong entity and weak entity thus total participation from weak entity set.\nM\nI\nStrong entity set\nWeak entity set\nR\nWeek \nRelationship\nTotal \nParticipation\n\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/20/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/20/exp.webp
new file mode 100644
index 0000000..1b4a848
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/20/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/20/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/20/q.webp
new file mode 100644
index 0000000..cdf65fa
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/20/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/21/data.json b/frontend/public/assets/gate/cs/questions/2024-N/21/data.json
new file mode 100644
index 0000000..59b6a21
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/21/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "21",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 21 \n \n \n \n[Complier Design (Lexical Analysis)]\n \n \nConsider the following two sets\nSet X \nSet Y\nP. \nLexical Analyzer \n1. \nAbstract Syntax Tree\nQ. \nSyntax Analyzer \n2. \nToken\nR. \nIntermediate Code\n3. \nParse Tree\nGenerator\nS. \nCode Optimizer \n4. \nConstant Folding\nWhich one of the following options is the CORRECT match from set \nX\n to Set \nY\n ?\n(A) \nP\n-4; \nQ\n-1; \nR\n-3; \nS\n-2 \n(B) \nP\n-2; \nQ\n-3; \nR\n-1;\n S\n-4\n(C) \nP\n-2; \nQ\n-1; \nR\n-3; \nS\n-4 \n(D) \nP\n-4; \nQ\n-3; \nR\n-2; \nS\n-1",
+ "answer_text": "(B)",
+ "explanation_text": "Sol. \nLexical analysis \n\uf0ae\n tokens\nSyntax analysis \n\uf0ae\n parse tree\nICG \n\uf0ae\n abstract syntax tree\nCode optimizer \n\uf0ae\n Constant folding\nHence, the correct option is (B)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/21/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/21/exp.webp
new file mode 100644
index 0000000..ad5e2bf
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/21/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/21/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/21/q.webp
new file mode 100644
index 0000000..c82bbe7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/21/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/22/data.json b/frontend/public/assets/gate/cs/questions/2024-N/22/data.json
new file mode 100644
index 0000000..7b6fce1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/22/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "22",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 22 \n \n \n[Theory of Computation (Finite Automata)]\n\nPAGE\n16\n\nWhich one of the following regular expressions is equivalent to the language accepted by the DFA given\nbelow?\n0\n0\n1\n\n1\n(A) \n0*1(0 10*1)*\n\uf02b\n \n(B) \n0*(10*11)*0*\n(C) \n0*1(010*1)*0*\n \n(C) \n0(1 0*10*1)*0*\n\uf02b",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n1\n0\n0\n1\n\nThe given of DFA\n \naccepts all and only binary string containing odd number of 1\u2019S.\n1\n0\n0\n1\n\nGo to the final state by reading \n0*1\n then stay in the final state by making either loop (0) or loop \n(10*1)\n \nin any order, any number of times.\nRegular expression :\n*\n0*1(0 10*1)\n\uf02b\nOption B : Counter example :\nGenerates empty string\nOption C : Counter example :\nDoes not generates \n1\n0\n0\n1 1\nOption D Counter examples :\nDoes not generates 1.\n\nPAGE\n17\n\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/22/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/22/exp.webp
new file mode 100644
index 0000000..df02d3e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/22/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/22/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/22/q.webp
new file mode 100644
index 0000000..0aa960d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/22/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/23/data.json b/frontend/public/assets/gate/cs/questions/2024-N/23/data.json
new file mode 100644
index 0000000..3bbe4ae
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/23/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "23",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 23 \n \n \n \n[Computer Network (Transport Layer)]\nNode \nX\n has a TCP connection open to node \nY\n. The packets from \nX\n to \nY\n go through an intermediate IP \nrouter \nR\n. Ethernet switch \nS\n is the first switch on the network path between \nX\n and \nR\n. Consider a packet sent \nfrom \nX\n to \nY\n over this connection.\nWhich of the following statements is/are TRUE about the destination IP and MAC addresses on this \n \npacket at the time it leaves \nX \n?\n(A) The destination MAC address is the MAC address of \nS\n(B) The destination IP address is the IP address of \nR\n(C) The destination IP address is the IP address of \nY\n(D) The destination MAC address is the MAC address of \nY",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\n \nHost \u2013 Switch \u2013 Router \u2013 Host\nX \n S \n R Y\nX\n send packet to \nY\n. considered IP datagram, IP address of destination is IP address of host (\nY\n). But \nX \nsend packet always default gateway router \nR\n and in path comes switch only forwarding the packet.\nHence, the correct option is (B)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/23/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/23/exp.webp
new file mode 100644
index 0000000..31d1712
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/23/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/23/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/23/q.webp
new file mode 100644
index 0000000..93db530
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/23/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/24/data.json b/frontend/public/assets/gate/cs/questions/2024-N/24/data.json
new file mode 100644
index 0000000..8e1b1f6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/24/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "24",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B, C, D)",
+ "question_text": "Question 24 \n[Operating System (Memory management and Virtual Memory)]\nWhich of the following tasks is/are the responsibility/responsibilities of the memory management unit \n(MMU) in a system with paging-based memory management ?\n(A) Allocate a new page table for a newly created process.\n(B) Translate a virtual address to a physical address using the page table.\n(C) Raise a trap when a virtual address is not found in the page table.\n(D) Raise a trap when a process tries to write to a page marked with read - only permission in the page \n \n \ntable.",
+ "answer_text": "(B, C, D)",
+ "explanation_text": "Sol.\n \nAs per property and function of memory management unit (MMU)\n(A) False as OS or kernel provides page table, and the MMU uses the page tables to translate virtual\naddresses into physical addresses for the OS.\n(B) True as it is main function of MMU\n(C) True as MMU will raise the trap when valid says invalid\n(D) True as MMU raise trap when process tries to write but protection says \u2018read only\u2019.\nHence, the correct option (B), (C) and (D).\n\nPAGE\n18\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/24/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/24/exp.webp
new file mode 100644
index 0000000..8ec9326
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/24/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/24/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/24/q.webp
new file mode 100644
index 0000000..3fc2dfc
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/24/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/25/data.json b/frontend/public/assets/gate/cs/questions/2024-N/25/data.json
new file mode 100644
index 0000000..6d53731
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/25/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "25",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 25 \n \n \n[Operating System (Process Management-II)]\nConsider a process \nP\n running on a CPU. Which one or more of the following events will always trigger \na context switch by the OS that results in process \nP\n moving to a non-running state (e.g., ready, blocked) \n?\n(A) \nP\n makes a blocking system call to read a block of data from the disk\n(B) \nP\n tries to access a page that is in the swap space, triggering a page fault \n \n(C) An interrupt is raised by the disk to deliver data requested by some other process \n \n \n(D) A timer interrupt is raised by the hardware \nAns. \n(A, B)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nOption A :\n \nTRUE\nIf a process itself makes a block ( ) call then it will be blocked until input/output.\nOption B : TRUE\nIf a page is not in the physical memory then the OS invokes the page faults handler and the process remains \nblocked until the page is read (Disk i/o is complete).\nOption C : False\nThat kind of request will be served by DMA and the CPU does not need to get invoked hence the current \nprogram will keep on using the CPU.\nOption D : False\nTimer interrupts will be ignored in many cases and will not lead to a context switch.\nHence, the correct option is (A) and (B)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/25/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/25/exp.webp
new file mode 100644
index 0000000..ef6514f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/25/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/25/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/25/q.webp
new file mode 100644
index 0000000..edd127a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/25/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/26/data.json b/frontend/public/assets/gate/cs/questions/2024-N/26/data.json
new file mode 100644
index 0000000..d505360
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/26/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "26",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A, B)",
+ "question_text": "Question 26 \n \n[Database (File Structure)]\nWhich of the following file organizations is/are I/O efficient for the scan operation in DBMS?\n(A) Sorted \n(B) Heap\n(C) Unclustered tree index \n(D) Unclustered hash index",
+ "answer_text": "(A, B)",
+ "explanation_text": "Sol.\n \nThe file organization that are I/O efficient for the scan operation in DBMS are\n(1) Sorted\n(2) Heap\nHence, the correct option is (A) and (B)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/26/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/26/exp.webp
new file mode 100644
index 0000000..f9153e6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/26/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/26/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/26/q.webp
new file mode 100644
index 0000000..9d30ed9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/26/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/27/data.json b/frontend/public/assets/gate/cs/questions/2024-N/27/data.json
new file mode 100644
index 0000000..854dfeb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/27/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "27",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 27 \n[Database (Transactions and Concurrency Control)]\n \n \nWhich of the following statements about the Two Phase Locking (2PL) protocol is/are TRUE ? \n \n(A) 2PL permits only serializable schedules\n\nPAGE\n19\n\n(B) With 2PL, a transaction always locks the data item being read or written just before every operation\nand always releases the lock just after the operation \n \n(C) With 2PL, once a lock is released on any data item inside a transaction, no more locks on any data\nitem can be obtained inside that transaction \n \n(D) A deadlock is possible with 2PL \nAns. \n(A, C, D)",
+ "answer_text": "",
+ "explanation_text": "Sol. \n(A) 2PL permits serial schedule\n(C) No lock can be taken an the shrinking phase of transaction once a lock has been released\n(D) 2 or more transaction can wait for each other to release locks. This concludes that deadlock can\noccur.\nHence, the correct option is (A), (C) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/27/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/27/exp.webp
new file mode 100644
index 0000000..21d4e9b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/27/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/27/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/27/q.webp
new file mode 100644
index 0000000..6f73742
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/27/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/28/data.json b/frontend/public/assets/gate/cs/questions/2024-N/28/data.json
new file mode 100644
index 0000000..33c00f4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/28/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "28",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 28 \n \n \n[Computer Network (Network Layer)] \n \nWhich of the following statements about IPv4 fragmentation is/are TRUE ? \n \n(A) The fragmentation of an IP datagram is performed only at the source of the datagram \n \n(B) The fragmentation of an IP datagram is performed at any IP router which finds that the size of the\ndatagram to be transmitted exceeds the MTU \n \n(C) The reassembly of fragments is performed only at the destination of the datagram \n \n(D) The reassembly of fragments is performed at all intermediate routers along the path from the source\nto the destination \nAns. \n(B,C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nOption B : TRUE\nFragmentation can indeed occurs at any router along the path if the packet size exceeds the MTU, but it \ndepends on whether the \u201cDo not fragment\u201d flag is set, the router will not fragments the packet and will \ninstead drop it, sending an ICMP \u201c Fragmentation needed\u201d message back to the source.\nOption C : TRUE\nReassembly of fragments is typically performed only at the destination of the datagram the destination is \nresponsible for putting the fragments back together to reconstruct the original packets.\nHence, the correct option is (B) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/28/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/28/exp.webp
new file mode 100644
index 0000000..e3193f4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/28/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/28/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/28/q.webp
new file mode 100644
index 0000000..ab3c7e6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/28/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/29/data.json b/frontend/public/assets/gate/cs/questions/2024-N/29/data.json
new file mode 100644
index 0000000..fa058f3
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/29/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "29",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B, D)",
+ "question_text": "Question 29 \n[Complier Design (Syntax Directed Translation)]\nWhich of the following statements is/are FALSE?\n(A) An attribute grammar is a syntax-directed definition (SDD) in which the functions in the semantic\nrules have no side effects\n(B) The attributes in a L-attributed definition cannot always be evaluated in a depth- first order\n(C) Synthesized attributes can be evaluated by a bottom-up parser as the input is parsed\n\nPAGE\n20\n\n(D) All L-attributed definitions based on LR(1) grammar can be evaluated using a bottom-up parsing\nstrategy",
+ "answer_text": "(B, D)",
+ "explanation_text": "Sol.\n \n(B) There is no fixed procedure of evaluating\n L\n \u2013 attribute in depth \u2013 First order\n(D) There is a fixed procedure which all \nL\n-attributed which al\n L\n-attributed definitional based on LR (1)\nusing bottom-up parsing.\nHence, the correct option is (B) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/29/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/29/exp.webp
new file mode 100644
index 0000000..39cd525
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/29/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/29/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/29/q.webp
new file mode 100644
index 0000000..59740a5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/29/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/3/data.json b/frontend/public/assets/gate/cs/questions/2024-N/3/data.json
new file mode 100644
index 0000000..2e44f1b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/3/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "3",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 3 \n \nIn an engineering college of 10,000 students. 1,500 like neither their core branches nor other branches. \nThe number of students who like their core branches is 1/4\nth\n of the number of students who like other \nbranches. The number of students who like both their core and other branches is 500. \n \nThe number of students who like their core branches is \n \n \n[Logical reasoning, 1]\n \n \n(A) 1,800 \n(B) 3,500 \n \n(C) 1,600 \n(D) 1,500 \nAns. \n(A) \nSol.\nU \n=10000\n500\nC\nO \n=40\n1500\n\nC =\n core\nO =\n Other\nO\n500\nC\n \uf0c7\n\uf03d\n1 O\n4\nC\n \uf03d\nO\n4\nC\n\uf03d\n(C\nO)\n1500\n\uf0c8\n\uf03d\nC\nO = 10000 15000 =\n(C\nO)\n8500\n\uf0c8\n\uf02d\n\uf0c8\uf02d\n\uf0c8\n\uf03d\n8500\nC\nO\n\uf0c8\n\uf03d\nC\nO\nC\nO\nC\nO\n\uf0c8\n\uf03d\n\uf02b\n\uf02d\n\uf0c7\n8500\n4\n500\nC\nC\n\uf03d\n\uf02b\n\uf02d\n5\n9000\nC\n \uf03d\n1800\nC\n \uf03d\nHence, the correct option is (A).\n\nPAGE\n3\n",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/3/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/3/q.webp
new file mode 100644
index 0000000..267807d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/3/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/30/data.json b/frontend/public/assets/gate/cs/questions/2024-N/30/data.json
new file mode 100644
index 0000000..6901ef8
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/30/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "30",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 30 \n \n \n[Digital Logic (Boolean Algebra)]\n \n \n \nFor a Boolean variable \nx\n, which of the following statements is/are FALSE ? \n \n(A) \n.1\nx\nx\n\uf03d\n \n(B) \n1\nx\nx\n\uf02b\uf03d\n \n \n(C) \n.\nx x\nx\n\uf03d\n \n(D) \n1\nx\nx\n\uf02b\n\uf03d\n \nAns. \n(B, C)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n(1) \n.1\nx\nx\n\uf03d\n\uf0ae\nidentity law (\nT\n)\n(2) \n1\n1 1\nx\nx\nx\n\uf02b\uf03d\n\uf0ae\n\uf02b\uf03d\n(3) \n.\n0\n.\nx x\nx x\nx\n\uf03d\n\uf0ae\n\uf03d\n [Idempotent law]\n(4) \n1\nx\nx\n\uf02b\n\uf03d\uf0ae\ncompliment law (\nT\n)\nHence, the correct option (B) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/30/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/30/exp.webp
new file mode 100644
index 0000000..8904a7c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/30/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/30/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/30/q.webp
new file mode 100644
index 0000000..4566122
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/30/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/31/data.json b/frontend/public/assets/gate/cs/questions/2024-N/31/data.json
new file mode 100644
index 0000000..b24f938
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/31/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "31",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 31 \n[Computer Organization & Architecture (Machine Instruction and Addressing)]\n \n \nAn instruction format has the following structure : \n \n \nInstruction Number :\n \n \n,\n \n1,\n \n2\nOpcode destination reg source reg\nsource reg\n\uf02d\n\uf02d\nConsider the following sequence of instructions to be executed in a pipelined processor : \n \n \n1:\n3, 1, 2\nI\nDIV R\nR R\n2:\n5, 3, 4\nI\nSUBR\nR\nR\n3:\n3, 5, 6\nI\nADDR\nR\nR\n4:\n7, 3, 8\nI\nMULR\nR\nR\nWhich of the following statements is/are TRUE ?\n(A) There is a RAW dependency on \n3\nR\n between \n1\nI\n and \n2\nI\n(B) There is a WAR dependency on \n3\nR\n between \n1\nI\n and \n3\nI\n(C) There is a RAW dependency on \n3\nR\n between \n2\nI\n and \n3\nI\n(D) There is a WAW dependency on \n3\nR\n between \n3\nI\n and \n4\nI\n \nAns. \n(A)",
+ "answer_text": "",
+ "explanation_text": "Sol. \nGiven :\n\nPAGE\n21\n\n1\n3\n1\n2\n:\n/\nI\nR\nR\nR\n\uf0ac\n2\n5\n3\n4\n:\nI\nR\nR\nR\n\uf0ac\n\uf02d\n3\n3\n5\n6\n:\nI\nR\nR\nR\n\uf0ac\n\uf02b\n4\n7\n3\n8\n:\nI\nR\nR\nR\n\uf0ae\n\uf02b\nRAW Dependency\n1\n2\n3\nto\nfor\nI\nI\nR\n2\n3\n5\nto\nfor\nI\nI\nR\n3\n4\n3\nfor\nfor\nI\nI\nR\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/31/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/31/exp.webp
new file mode 100644
index 0000000..7b5ba50
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/31/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/31/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/31/q.webp
new file mode 100644
index 0000000..92dd917
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/31/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/32/data.json b/frontend/public/assets/gate/cs/questions/2024-N/32/data.json
new file mode 100644
index 0000000..e10319f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/32/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "32",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 32 \n[Computer Network (Concepts of Layering and LAN Technologies)]\n \n \nWhich of the following fields of an IP header is/are always modified by any router before it forwards the \nIP packet ? \n \n(A) Source IP Address \n(B) Protocol \n \n(C) Time to Live (TTL) \n(D) Header Checksum \nAns. \n(C, D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n(A) Source IP remains unchanged\n(B) Protocol indicates type of data carried [TCP, UDP] and is not altered by routers.\n(C) TTL value is decremented by l by each router that forward packet.\n(D) As TTL value of IP header is changed by every router, corresponding header checksum is\nrecalculated based on the new value of TTL.\nHence, the correct option is (C) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/32/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/32/exp.webp
new file mode 100644
index 0000000..721447e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/32/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/32/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/32/q.webp
new file mode 100644
index 0000000..cf0d139
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/32/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/33/data.json b/frontend/public/assets/gate/cs/questions/2024-N/33/data.json
new file mode 100644
index 0000000..b9edd7a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/33/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "33",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A, B, D)",
+ "question_text": "Question 33 \n \n \n \n \n \n[C-Programming]\n \n \nConsider the following C function definition\nint fX (char * a) {\nchar *b = a ;\nwhile (*b)\nb++;\nreturn b \u2013 a;\nWhich of the following statement is /are TRUE ?\n\nPAGE\n22\n\n(A) The function call fX (\u201cabcd\u201d) will always return a value\n(B) Assuming a character array c is declared as char c[ ] = \u201cabcd\u201d in main ( ), the function call fX (c)\nwill always return a value\n(C) The code of the function will not compile\n(D) Assuming a character pointer C is declared as char *C = \u201cabcd\u201d in main ( ), the function call fX(c)\nwill always return a value",
+ "answer_text": "(A, B, D)",
+ "explanation_text": "Sol.\n \nWe can try run the code to get the result"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/33/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/33/exp.webp
new file mode 100644
index 0000000..2eb1b92
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/33/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/33/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/33/q.webp
new file mode 100644
index 0000000..db62cd9
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/33/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/34/data.json b/frontend/public/assets/gate/cs/questions/2024-N/34/data.json
new file mode 100644
index 0000000..98f7213
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/34/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "34",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(5 to 5) \nSol.\n \nHasse diagram\n4\n2\n\n1\n3\nTotal Order\n(1) \n1\n3\n2\n4\n\uf0ae\n\uf0ae\n\uf0ae\n(2) \n1\n3\n4\n2\n\uf0ae\uf0ae\n\uf0ae\n(3) \n3\n1\n2\n4\n\uf0ae\uf0ae\n\uf0ae\n(4) \n3\n1\n4\n2\n\uf0ae\uf0ae\n\uf0ae\n \n \n(5) \n3\n4\n1\n2\n\uf0ae\n\uf0ae\uf0ae\n \n \nHence, the correct answer is 5.\n \nQuestion 35\nLet \nA \nbe an array containing integer values. The distance of \nA\n is defined as the minimum number of\nelements in \nA\n that must be replaced with another integer so that the resulting array is sorted in non-\ndecreasing order. The distance of the array [2,5,3,1,4,2,6] is ________.\n[Data Structure, 1 Array]\n \n(3 to 3) \nSol.\n \nThe array with sorted indices\n\nPAGE\n23\n\nValue \n2 \n2 \n3 \n3 \n4 \n4 \n6 \nIndex \n0 \n1 \n2 \n3 \n4 \n5 \n6 \n \nNo of elements out of order = 3\nHence, the correct answer is 3.\nQ.36 \u2013 Q.65 Carry TWO marks Each",
+ "question_text": "Question 34 \n \n \nLet \nP\n \nbe the partial order defined on the set {1, 2, 3, 4} as follows\n{( , )\n{1,2,3,4}}\n{(1,2),(3,2),(3,4)}\nP\nx x x\n\uf03d\n\uf0ce\n\uf0c8\nThe number of total order on \n{1,2,3,4}\nthat contain \nP \nis\n ________.\n[Discrete Mathematics & Graph theory, 4 Set theory & Algebra]",
+ "answer_text": "(5 to 5) \nSol.\n \nHasse diagram\n4\n2\n\n1\n3\nTotal Order\n(1) \n1\n3\n2\n4\n\uf0ae\n\uf0ae\n\uf0ae\n(2) \n1\n3\n4\n2\n\uf0ae\uf0ae\n\uf0ae\n(3) \n3\n1\n2\n4\n\uf0ae\uf0ae\n\uf0ae\n(4) \n3\n1\n4\n2\n\uf0ae\uf0ae\n\uf0ae\n \n \n(5) \n3\n4\n1\n2\n\uf0ae\n\uf0ae\uf0ae\n \n \nHence, the correct answer is 5.\n \nQuestion 35\nLet \nA \nbe an array containing integer values. The distance of \nA\n is defined as the minimum number of\nelements in \nA\n that must be replaced with another integer so that the resulting array is sorted in non-\ndecreasing order. The distance of the array [2,5,3,1,4,2,6] is ________.\n[Data Structure, 1 Array]\n \n(3 to 3) \nSol.\n \nThe array with sorted indices\n\nPAGE\n23\n\nValue \n2 \n2 \n3 \n3 \n4 \n4 \n6 \nIndex \n0 \n1 \n2 \n3 \n4 \n5 \n6 \n \nNo of elements out of order = 3\nHence, the correct answer is 3.\nQ.36 \u2013 Q.65 Carry TWO marks Each",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/34/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/34/q.webp
new file mode 100644
index 0000000..a712847
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/34/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/36/data.json b/frontend/public/assets/gate/cs/questions/2024-N/36/data.json
new file mode 100644
index 0000000..576c256
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/36/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "36",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 36 \n \nWhat is the output of the following \nC\n program ? \n \n \n#include \n \n \nInt main () { \n \n \n double a[2] = {20.0, 25.0}, *p, *q; \n \n \n p = a; \n \n q = p + 1; \n \n printf (\u201c%d, %d\u201d, (int) (q \u2013 p), (int) (*q \u2013 *p)); \n \n \n return 0; } \n \n \n \n \n \n[C program] \n \n(A) 4,8 \n(B) 1, 5 \n \n(C) 8, 5 \n(D) 1, 8 \nAns. \n(B) \nSol.\na[0]\na[1]\na\n20.0\n25.0\n1000\n1008\n*q\n*p\n1000\n1008\n\n2008\n2000\n2008\n2000\n8\nint(q p)\n1\n8\n8\n\uf02d\n\uf02d\n\uf03d\n\uf03d\n\uf03d\nint(*q *p)\nint(25.0\n20.0)\n\uf02d\n\uf03d\n\uf02d\n= 5\nHence, the correct option is (B).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/36/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/36/q.webp
new file mode 100644
index 0000000..75a6b7c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/36/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/37/data.json b/frontend/public/assets/gate/cs/questions/2024-N/37/data.json
new file mode 100644
index 0000000..580cc84
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/37/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "37",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B) \nSol.\n \nSJF CPU Schedulling\nP \nA.T \nB.T \nC.T \nTAT \nWT \nA \n0 \n10 \n10 \n10 \n0 \nB \n2 \n6 \n19 \n17 \n11 \nC \n4 \n3 \n13 \n9 \n6 \nD \n6 \n7 \n26 \n20 \n13\nTotal average waiting time \n0 11 6 13\n30\n7.5\n4\n4\n\uf02b\n\uf02b\n\uf02b\n\uf03d\n\uf03d\n\uf03d\nSRTF CPU scheduling\nP \nA.T \nB.T \nC.T \nTAT \nWT \nA \n0 \n10 \n26 \n26 \n16 \nB \n2 \n6 \n11 \n9 \n3 \nC \n4 \n3 \n7 \n3 \n0 \nD \n6 \n7 \n18 \n12 \n5\nTotal average waiting time \n16\n3\n0\n5\n24\n6\n4\n4\n\uf02b\uf02b\n\uf02b\n\uf03d\n\uf03d\n\uf03d\nHence, the correct option is (B).",
+ "question_text": "Question 37\nConsider a single processor system with four processes \n, ,\n,\nA B C\n and \nD\n , represented as given below,\nwhere for each process the first value is its arrival time, and the second value is its CPU burst time.\n\uf028\n\uf029\n\uf028\n\uf029\n\uf028\n\uf029\n\uf028\n\uf029\n0,10 ,\n2,6 ,\n4,3 , and\n6,7\nA\nB\nC\nD\n\nPAGE\n24\n\nWhich one of the following options gives the average waiting times when preemptive Shortest Remaining \nTime First (SRTF) and Non-Premptive Shortest Job First (NP-SJF) CPU scheduling algorithms are \napplied to the processes ? \n \n[Operating System, 2 Process Management II]\n \n \n(A) \n6,\n7\nSRTF\nNP\nSJF\n\uf03d\n\uf02d\n\uf03d\n \n(B) \n6,\n7.5\nSRTF\nNP\nSJF\n\uf03d\n\uf02d\n\uf03d\n(C) \n7,\n7.5\nSRTF\nNP\nSJF\n\uf03d\n\uf02d\n\uf03d\n \n(D) \n7,\n8.5\nSRTF\nNP\nSJF\n\uf03d\n\uf02d\n\uf03d",
+ "answer_text": "(B) \nSol.\n \nSJF CPU Schedulling\nP \nA.T \nB.T \nC.T \nTAT \nWT \nA \n0 \n10 \n10 \n10 \n0 \nB \n2 \n6 \n19 \n17 \n11 \nC \n4 \n3 \n13 \n9 \n6 \nD \n6 \n7 \n26 \n20 \n13\nTotal average waiting time \n0 11 6 13\n30\n7.5\n4\n4\n\uf02b\n\uf02b\n\uf02b\n\uf03d\n\uf03d\n\uf03d\nSRTF CPU scheduling\nP \nA.T \nB.T \nC.T \nTAT \nWT \nA \n0 \n10 \n26 \n26 \n16 \nB \n2 \n6 \n11 \n9 \n3 \nC \n4 \n3 \n7 \n3 \n0 \nD \n6 \n7 \n18 \n12 \n5\nTotal average waiting time \n16\n3\n0\n5\n24\n6\n4\n4\n\uf02b\uf02b\n\uf02b\n\uf03d\n\uf03d\n\uf03d\nHence, the correct option is (B).",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/37/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/37/q.webp
new file mode 100644
index 0000000..b16aba7
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/37/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/38/data.json b/frontend/public/assets/gate/cs/questions/2024-N/38/data.json
new file mode 100644
index 0000000..c2619f1
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/38/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "38",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 38\n \n \nWhich one of the following CIDR prefixes exactly represents the range of IP addresses 10.12.2.0 to \n10.12.3.255 ? \n[Computer Network, 1 Concept of Layering and LAN Technologies] \n \n(A) 10.12.2.0/23 \n(B) 10.12.2.0/24 \n \n(C) 10.12.0.0/22 \n(D) 10.12.2.0/22 \nAns. \n(A)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nWe know that IP address are contiguous, block size is power of 2, and starting address is divisible by \nblock size so, they can form a block.\n10.12.2.0 to 10.12.2.255 = 256\n10.12.3.0 to 10.12.3.255 = 256\nTotal IP address [10.12.2.0 to 10.12.3.255]\n9\n256\n256\n512\n2\n\uf03d\n\uf02b\n\uf03d\n\uf03d\nNumber of bit for Host id = 9 bit\n\nPAGE\n25\n\nNumber of bit for Net id (NiD) = 32 \u2013 9 = 23 bit\nCIDR notation represented as\n10.12.2.0/23\nHence, the correct option is (A)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/38/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/38/exp.webp
new file mode 100644
index 0000000..308fb3c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/38/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/38/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/38/q.webp
new file mode 100644
index 0000000..a053d1e
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/38/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/39/data.json b/frontend/public/assets/gate/cs/questions/2024-N/39/data.json
new file mode 100644
index 0000000..ee43291
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/39/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "39",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 39\n \n \nYou are given a set \nV\n of distinct integers. A binary search tree \nT\n is created by inserting all elements of \nV\n \none by one. starting with an empty tree. The tree \nT\n follows the convention that, at each node, all values \nstored in the left subtree of the node are smaller than the value stored at the node. You are not aware of \nthe sequence in which these values were inserted into \nT\n. and you do not have access to \nT\n.\nWhich one of the following statements is TRUE? \n \n \n[Data Structure, 5 tree]\n(A) Inorder traversal of \nT\n can be determined from \nV\n(B) Root node of \nT\n can be determined from \nV\n(C) Preorder traversal of \nT\n can be determined from \nV\n(D) Postorder traversal of \nT\n can be determined from \nV",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n \nAs per convention given, we can derive the in order traversal of the nodes in the left root right and also \ngive the data in ascending order.\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/39/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/39/exp.webp
new file mode 100644
index 0000000..50494ce
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/39/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/39/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/39/q.webp
new file mode 100644
index 0000000..094c394
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/39/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/4/data.json b/frontend/public/assets/gate/cs/questions/2024-N/4/data.json
new file mode 100644
index 0000000..028b293
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/4/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "4",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 4\nFor positive non-zero real variables \nx\n and \ny\n, if \n1\nln\n[ln ( )\nln ( )]\n2\n2\nx\ny\nx\ny\n\uf02b\n\uf0e6\n\uf0f6\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nthen, the value of \nx\ny\ny\nx\n\uf02b\n is\n[Logical reasoning, 3]\n(A) 1 \n(B) \n1\n2\n(C) 2 \n(D) 4 \nAns. \n(C)\n \nSol. \nGiven :\n For positive non-zero real variables \nx\n and \ny\n,\n1\nln\n[ln ( )\nln ( )]\n2\n2\nx\ny\nx\ny\n\uf02b\n\uf0e6\n\uf0f6\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n2ln\n[ln ( )\nln ( )]\n2\nx\ny\nx\ny\n\uf02b\n\uf0e6\n\uf0f6\uf03d\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\uf05b\n\uf05d\nln ( )\nln ( )\nln (\n)\nm\nn\nmn\n\uf02b\n\uf03d\n\n2ln\nln (\n)\n2\nx\ny\nxy\n\uf02b\n\uf0e6\n\uf0f6\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\n2\nln\nln(\n)\n2\nx\ny\nxy\n\uf02b\n\uf0e6\n\uf0f6\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nln ( )\nln ( )\nk\nk\nm\nm\n\uf0e9\n\uf0f9\n\uf03d\n\uf0eb\n\uf0fb\n\n\nTaking antilog both sides,\n2\n2\nx\ny\nxy\n\uf02b\n\uf0e6\n\uf0f6\uf03d\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n2\n2\n2\n(\n)\n2\na\nb\na\nb\nab\n\uf0e9\n\uf0f9\n\uf02b\n\uf03d\n\uf02b\n\uf02b\n\uf0eb\n\uf0fb\n\n\n2\n2\n2\n4\nx\ny\nxy\nxy\n\uf02b\n\uf02b\n\uf03d\n\n2\n2\n4\n2\nx\ny\nxy\nxy\n\uf02b\n\uf03d\n\uf02d\n2\n2\n2\nx\ny\nxy\n\uf02b\n\uf03d\n2\n2\n2\nx\ny\nxy\nxy\n\uf02b\n\uf03d\n\n2\nx\ny\ny\nx\n\uf02b\n\uf03d\nHence, the correct option is (C). \nQuestion 5 \n \nIn the sequence 6, 9, 14, \nx\n, 30, 41, a possible value of \nx\n is \n \n \n[Numerical Ability, 1] \n \n(A) 25 \n(B) 21 \n \n(C) 18 \n(D) 20 \nAns. \n(B)\n\nPAGE\n4\n",
+ "answer_text": "",
+ "explanation_text": "Sol. \nGiven : \nSequence of numbers\n6, \n9, \n14, \nx\n, \n30, \n41\n\n+3 \n+5 \n+7 \n+9 \n+11\nHere each number is obtained by adding consecutive odd number in the previous number. \n \ni.e., \n6\n3\n9\n\uf02b\uf03d\n \n \n \n9\n5\n14\n\uf02b\n\uf03d\n \n \n \n14\n7\nx\n\uf02b\n\uf03d\n \n \n \n9\n30\nx\n \uf02b\n\uf03d\n \n \n \n30 11\n41\n\uf02b\n\uf03d\n \n \n \n41 13\n54\n\uf02b\n\uf03d\n\u2026\u2026\u2026 \n \nHence, \n14\n7\nx\n\uf02b\n\uf03d\n \n \n \n21\nx\n\uf03d\n \n \n \n \nOr \n \n \n9\n30\nx\n \uf02b\n\uf03d\n \n \n \n30\n9\nx\n \uf03d\n\uf02d\n \n \n \n21\nx\n \uf03d\n \n \nPossible value of \nx\n is 21. \n \nHence, the correct options is (B).\n\nQ.6 to Q.10 Carry TWO Marks Each"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/4/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/4/exp.webp
new file mode 100644
index 0000000..f7ed521
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/4/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/4/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/4/q.webp
new file mode 100644
index 0000000..bc260b5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/4/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/40/data.json b/frontend/public/assets/gate/cs/questions/2024-N/40/data.json
new file mode 100644
index 0000000..5bd3c67
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/40/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "40",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)\n \n(B)",
+ "question_text": "Question 40\n \n \nConsider the following context-free grammar where the start symbol is \nS\n and the set of terminals is\n\uf07b\n\uf07d\n, , ,\na b c d\n .\n|\nS\nAaAb BbBa\n\uf0ae\n|\nA\ncS\n\uf0ae\n\uf0ce\n|\nB\ndS\n\uf0ae\n\uf0ce\nThe following is a partially-filled LL(1) parsing table.\na \nb \nc \nd \n$ \nS\n \nS\nAaAb\n\uf0ae\n \nS\nBbBa\n\uf0ae\n \n(1) \n(2)\nA \nA\n\uf0ae\uf0ce\n \n(3) \nA\ncS\n\uf0ae\nB \n(4) \nB\n \uf0ae\uf0ce\n \n \nB\ndS\n\uf0ae\nWhich one of the following options represents the CORRECT combination for the numbered cells in the \nparsing table ? \n \nNote : In the options, \u201cblank\u201d denotes that the corresponding cell is empty.\n[Complier Design, 2 Parsing Technique]\n(A) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\n(4)\nS\nAaAb\nS\nBbBa\nA\nB\n\uf0ae\n\uf0ae\n\uf0ae\uf0ce\n\uf0ae\uf0ce\n\nPAGE\n26\n\n(B) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\n(4)\nS\nBbBa\nS\nAaAb\nA\nB\n\uf0ae\n\uf0ae\n\uf0ae\uf0ce\n\uf0ae\uf0ce\n(C) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\n(4)\nS\nAaAb\nS\nBbBa\nblank\nblank\n\uf0ae\n\uf0ae\n(D) \n\uf028\uf029\n\uf028\uf029\n1\n2\n(3)\n(4)\nS\nBbBa\nS\nAaAb\nblank\nblank\n\uf0ae\n\uf0ae",
+ "answer_text": "(A)\n \n(B)",
+ "explanation_text": "Sol.\nFirst \nFollow \n|\nS\nAaAb BbBa\n\uf0ae\n \n{ , , , }\na b c d\n \n{$, , }\na b\n \n|\nA\nCS E\n\uf0ae\n \n{ , }\nC E\n \n{ , }\na b\n \n|\nB\ndS E\n\uf0ae\n \n{ , }\nd E\n \n{ , }\na b\na \nb \nc \nd \n$\n \nS \nS\nAaAb\n\uf0ae\n \nS\nBbBa\n\uf0ae\n \n(1)\nS\nAaAb\n\uf0ae\n\uf03d\n \n(2)\nS\nBbBa\n\uf0ae\n\uf03d\n \n \nA \nA\n\uf0ae\uf0ce\n \nA\n\uf0ae\uf0ce\n(iii) \nA\nCS\n\uf0ae\n \n \n \nB \n(iv)\nB\n \uf0ae\uf0ce\n \nB\n \uf0ae\uf0ce\n \n \nB\ndS\n\uf0ae\n \n \n \nHence, the correct option is (A). \nQuestion 41\nLet \nM\n be the 5-state NFA with \n\uf0ce\uf02d\ntransitions shown in the diagram below.\nWhich one of the following regular expressions represents the language accepted by \nM\n ?\n[Theory of Computation, 1 Finite Automata]\n(A) \n\uf028\n\uf029\n\uf028\n\uf029\n00\n1 11\n\uf02a\n\uf02a\n\uf02b\n \n(B) \n\uf028\n\uf029\n\uf028\n\uf029\n\uf028\n\uf029\n0\n1 0 00\n11\n\uf02a\n\uf02a\n\uf02a\n\uf02b\n\uf02b\n(C) \n\uf028\n\uf029\n\uf028\n\uf029\n\uf028\n\uf029\n\uf028\n\uf029\n00\n1\n00\n11\n\uf02a\n\uf02a\n\uf02a\n\uf02b\n\uf02b\n \n(D) \n\uf028\n\uf029\n\uf028\n\uf029\n0\n1 11\n0 11\n\uf02a\n\uf02a\n\uf02b\n\uf02b\n\uf02b\nSol.\n \nCounter example\nFor option A : 0 1 1 is not generated.\nFor option C : 0 0 0 is not generated\nFor option D : Empty string is not generated\nHence, the correct option is (B)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/40/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/40/exp.webp
new file mode 100644
index 0000000..fd3daff
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/40/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/40/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/40/q.webp
new file mode 100644
index 0000000..90a06c6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/40/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/42/data.json b/frontend/public/assets/gate/cs/questions/2024-N/42/data.json
new file mode 100644
index 0000000..37c2b1e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/42/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "42",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 42\n\nPAGE\n27\n\nConsider an array \nX\n that contains \nn\n positive integers. A subarray of \nX\n is defined to be a sequence of \narray locations with consecutive indices.\nThe \nC\n code snippet given below has been written to compute the length of the longest subarray of \nX\n that \ncontains at most two distinct integers. The code has two missing expressions labelled \n\uf028\uf029\nP\n and \n\uf028\uf029\nQ\n .\nInt first = 0, second = 0, len1 = 0, len2 = 0, maxlen = 0; \n \n \nfor (int i = 0; i < n; i++) { \n \n \n if (X[i] == first) { \n \n \n len2++; len1++; \n \n } else if (X[i] == second) { \n \n \n len2++; \n \n \n \n len1 = (P) ; \n \n \n second = first ; \n \n \n} else { \n \n \n len2 = (Q) ; \n \n \n len1 = 1; second = first; \n \n \n} \n \n \nif (len2 > maxlen) { \n \n \n maxlen = len2; \n \n \n} \n \n \nFirst = X[i]; \n \n \n} \n \nWhich one of the following options gives the CORRECT missing expressions ? \n \n(Hint : At the end of the i-th iteration, the value of len1 is the length of the longest subarray ending with \nX[i] that contains all equal values, and len2 is the length of the longest subarray ending with X[i] that \ncontains at most two distinct values.) \n \n \n \n[Data Structure, 1 Array]\n(A) \n\uf028\uf029\n\uf028\uf029\n1 1\n2\n1\nP\nlen\nQ\nlen\n\uf02b\n\uf02b\n(B) \n\uf028\uf029\n\uf028\uf029\n1\n1 1\nP\nQ\nlen\n \uf02b\n(C) \n\uf028\uf029\n\uf028\uf029\n1\n2\n1\nP\nQ\nlen\n \uf02b\n(D) \n\uf028\uf029\n\uf028\uf029\n2 1\n1 1\nP\nlen\nQ\nlen\n\uf02b\n\uf02b",
+ "answer_text": "(B)",
+ "explanation_text": "Sol.\n \nIn the given program we keep track of the atmost two distinct values allowed in the subarray using the \nvariables first and second.\nThe variable first stores the latest [or the second] distinct value in the subarrary.\nWhile the variable second stores the second latest [or the first] distinct value we see in the subarray.\n\nPAGE\n28\n\nWe can try run the code\nHence, the correct option is (B)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/42/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/42/exp.webp
new file mode 100644
index 0000000..450639c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/42/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/42/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/42/q.webp
new file mode 100644
index 0000000..6695e1b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/42/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/43/data.json b/frontend/public/assets/gate/cs/questions/2024-N/43/data.json
new file mode 100644
index 0000000..2cc9394
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/43/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "43",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(A)",
+ "question_text": "Question 43\nConsider the following expression: \n\uf028\n\uf029\n[ ]\n*\n[ ]\n/\nx i\np\nr\ns i\nu w\n\uf03d\n\uf02b\n\uf02d\n\uf02b\n. The following sequence shows the list of\ntriples representing the given expression, with entries missing for triples (1), (3), and (6).\n[Data Structure, 2 Stack Queue]\n \n(0)\n \n+ \np \nR\n(1)\n(2) \numinus \n(1)\n(3)\n(4) \n/ \nu \nw\n(5) \n+ \n(3) \n(4)\n(6)\n(7) \n= \n(6) \n(5) \n \n \nWhich one of the following options fills in the missing entries CORRECTLY ?\n(A) \n\uf028\uf029\n\uf05b\uf05d\n\uf028\uf029\uf028\uf029\uf028\uf029\n\uf028\uf029\n\uf05b\uf05d\n1\n3 * 0\n2\n6\ns i\nxi\n\uf03d\n\uf03d\n(B) \n\uf028\uf029\n\uf05b\uf05d\n\uf028\uf029\uf028\uf029\uf028\uf029\n\uf028\uf029\n\uf05b\uf05d\n\uf028\uf029\n1\n3\n0\n2\n6\n5\ns i\nx\n\uf03d\n\uf02d\n\uf03d\n(C) \n\uf028\uf029\n\uf05b\uf05d\n\uf028\uf029\uf028\uf029\uf028\uf029\n\uf028\uf029\n\uf05b\uf05d\n\uf028\uf029\n1\n3 * 0\n2\n6\n5\ns i\nx\n\uf03d\n\uf03d\n(D) \n\uf028\uf029\n\uf05b\uf05d\n\uf028\uf029\uf028\uf029\uf028\uf029\n\uf028\uf029\n\uf05b\uf05d\n1\n3\n0\n2\n6\ns i\nxi\n\uf03d\n\uf02d\n\uf03d",
+ "answer_text": "(A)",
+ "explanation_text": "Sol.\n \nGoing from left to right we resolve the bracket first. (\nP\n + \nr\n) is already given now we solve \ns\n[\ni\n]. Then \ncomes unary minus as per operator preference then we solve * which acts (0 and 2) and\n /,+\nsubsequently \nthen \nx\n[\ni\n] address is calculated (step - 6) where the final results (obtain in step 5) is stored in the last step \n(7). The assignment operator has lowest preference so it is done at last.\nHence, the correct option is (A)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/43/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/43/exp.webp
new file mode 100644
index 0000000..2232627
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/43/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/43/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/43/q.webp
new file mode 100644
index 0000000..b8f4c57
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/43/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/44/data.json b/frontend/public/assets/gate/cs/questions/2024-N/44/data.json
new file mode 100644
index 0000000..9b98485
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/44/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "44",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(D)\n\nPAGE\n29",
+ "question_text": "Question 44\nLet \nx\n and \ny\n be random variables, not necessarily independent, that take real values in the interval [0, 1] \nLet \nz \n= \nxy\n and let the mean values of \nx\n, \ny\n, \nz\n be \n, , ,\nx y z\n respectively. Which one of the following statements \nis TRUE ? \n \n \n \n[Engineering Mathematics, Probability]\n \n \n(A) \nz\nx y\n\uf03d\n \n(B) \nz\nx y\n\uf0a3\n(C) \nz\nx y\n\uf0b3\n \n(D) \nz\nx\n\uf0a3",
+ "answer_text": "(D)\n\nPAGE\n29",
+ "explanation_text": "Sol.\n \nLet us first give counter example for (C) and (A)\nLet us assume \nX\n is a random variable uniformly distributed is [0,1] and Y is 1\n\u2013X\nSo, \n1\n(X)\n2\nE\n\uf03d\n and \n1\n1\n( )\n(1\n)\n(1)\n(\n)\n1\n2\n2\nE Y\nE\nX\nE\nE X\n\uf03d\n\uf02d\n\uf03d\n\uf02d\n\uf03d\uf02d\n\uf03d\nNow, Given \nZ \n= \nXY\n1\n1\n( )\n(\n)\n(1- )\n6\nE Z\nE XY\nx\nx dx\n\uf03d\n\uf03d\n\uf03d\n\uf0f2\n\n0\nSo, \n( )\n(\n) ( )\nE Z\nE X E Y\n\uf0a3\n[Note here covariance is negative]\nCounter Example for (B):\nLet us assume \nX\n is random variable uniformly distributed in [0,1] and \nY\n = \nX\nSo, \n1\n(\n)\n2\nE X\n \uf03d\n1\n( )\n2\nE Y\n \uf03d\nNow Given \nZ\nXY\n\uf03d\n1\n2\nx\nxdx\n\uf03d\n\uf0b4\n\uf03d\n\uf0f2\n1\nSo, \n( )\n(\n)\nE Z\nE XY\n\uf03d\n0\nSo, \n( )\n(\n) ( )\nE Z\nE X E Y\n\uf0b3\n[Note here Covariance is positively]\nNow, why does option (D) is correct?\n\uf0de\n It is given, \nX \nand \nY \ntakes value in the range [0, 1]\nSo, we can write, \n0\n1\nY\n\uf0a3\n\uf0a3\nMultiply this inequality by \nX\n.\nSo, \n0\nXY\nX\n\uf0a3\n\uf0a3\nNow take expectation of this inequality\nSo, \n(0)\n(\n)\n(\n)\nE\nE XY\nE X\n\uf0a3\n\uf0a3\nSo, \n0\n(\n)\n(\n)\nE XY\nE X\n\uf0a3\n\uf0a3\nWhich proof the option (D)\n\nPAGE\n30\n\nNote this inequality holds true because \nX\n and \nY \ntakes value in the range between [0,1]\nHence the correct option is (D)"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/44/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/44/exp.webp
new file mode 100644
index 0000000..25b02b8
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/44/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/44/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/44/q.webp
new file mode 100644
index 0000000..741830a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/44/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/45/data.json b/frontend/public/assets/gate/cs/questions/2024-N/45/data.json
new file mode 100644
index 0000000..f0c7a10
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/45/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "45",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B)",
+ "question_text": "Question 45\nThe relation schema. Person (pid, city), describes the city of residence for every person uniquely identified \n \nby pid. The following relational algebra operators are available: selection, projection, cross product, and \n \nrename.\nTo find the list of cities where at least 3 persons reside, using the above operators, the minimum number \n \nof cross product operations that must be used is \n[Database, 3 relational Model Relational Algebra]\n(A) 1 \n(B) 2\n(C) 3 \n(D) 4",
+ "answer_text": "(B)",
+ "explanation_text": "Sol. \n \n1\n(\n)\nR\nR S\n\uf0ac\uf073\n\uf0b4\nR\n.city = \nS\n. city \n\uf0d9\n \nR\n.pid \n\uf0b9\nS\n.pid\n2\n1\n(\n)\nR\nR\nP\n\uf0ac\uf073\n\uf0b4\n1\n.city\nR\n = \nP\n. city \n\uf0d9\n \nR\n1\n.pid \n\uf0b9\nP\n.pid\n3\nR\n \uf0ac\uf070\n2\n(\n)\nR\ncity\nHence, we need 3 table and 2 cross product\nHence, the correct option is (B)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/45/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/45/exp.webp
new file mode 100644
index 0000000..c24b628
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/45/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/45/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/45/q.webp
new file mode 100644
index 0000000..9f89cae
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/45/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/46/data.json b/frontend/public/assets/gate/cs/questions/2024-N/46/data.json
new file mode 100644
index 0000000..14f7049
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/46/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "46",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B, C)",
+ "question_text": "Question 46\nConsider a multi-threaded program with two threads \nT\n1 and \nT\n2. The threads share two semaphores : \ns\n1 \n(initialized to 1) and \ns\n2 (initialized to 0). The threads also share a global variable \nx \n(initialized to 0). The \nthreads execute the code shown below.\n// code of T1\n// code of T2\nwait (s1);\nwait (s1);\nx = x\n+\n1;\nx = x\n+\n1;\nprint (x);\nprint (x);\nwait (s2);\nwait (s2);\nsignal (s1);\nsignal (s1);\nWhich of the following outcomes is/are possible when thread T1 and 2 execute concurrently ?\n[Operating System, 3 Deadlock]\n(A) \nT\n1 runs first and prints 1. \nT\n2 runs next and prints 2\n\nPAGE\n31\n\n(B) \nT\n2 runs first and prints 1. \nT\n1 tuns next and prints 2\n(C) \nT\nl runs first and prints 1. \nT\n2 does not print anything (deadlock)\n(D) \n \nT\n2 runs first and prints 1. \nT\n1 does not print anything (deadlock)",
+ "answer_text": "(B, C)",
+ "explanation_text": "Sol.\n \nInitially \n1\n1\nS\n \uf03d\nand both threads are performing wait operation on \n1\nS\n . So, only one thread will succeed\nand run.\nIf thread \n1\nT\n runs first then \n1\nT\n get blocked When it execute wait \n2\n(\n)\nS\n. Also, \n2\nT\n cannot run as it would\nget blocked when it executes wait \n1\n( )\nS\n . So deadlock occur.\nHence, the correct option is (B) and (C)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/46/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/46/exp.webp
new file mode 100644
index 0000000..c086431
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/46/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/46/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/46/q.webp
new file mode 100644
index 0000000..83a3adb
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/46/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/47/data.json b/frontend/public/assets/gate/cs/questions/2024-N/47/data.json
new file mode 100644
index 0000000..acbd62b
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/47/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "47",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MSQ",
+ "key": "",
+ "question_text": "Question 47 \n[MSQ]\nLet \nA\n be an \nn n\n\uf0b4\n matrix over the set of all real numbers \nR\n . Let \nB\n be a matrix obtained from \nA\n by \nswapping two rows. Which of the following statements is/are TRUE ?\n[Engineering Mathematics, Linear Algebra]\n(A) The determinant of \nB\n is the negative of the determinant of \nA\n(B) If \nA\n is invertible, then \nB\n is also invertible\n(C) If \nA\n is symmetric, then \nB\n is also symmetric\n(D) If the trace of \nA\n is zero, then the trace of \nB\n is also zero \nAns. \n(A, B) \nSol.\n \nLet us take \n2\n2\n\uf0b4\n matrix\n2\n3\nA\n\uf0e9\n\uf0f9\n\uf03d\uf0ea\n\uf0fa\n\uf02d\n\uf0eb\n\uf0fb\n3\n2\n\n\n3\n2\nB\n\uf02d\n\uf0e9\n\uf0f9\n\uf03d\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n2\n3\nthen\n\nFrom option (A) : \n \nDeterminant of \nA\n and \nB\n \nis\n9\n4\n13\nA\n \uf03d\uf02d\uf02d\n\uf03d\uf02d\n4\n9\n13\nB\n \uf03d\n\uf02b\n\uf03d\nHence, determinant of \nB\n is the negative of the determinant of \nA\n. \n \nHence, option (A) is correct. \n \nFrom option (B) : \n \nInvertible matrix :\n An invertible matrix is a square matrix that has an inverse. \n \nFor inverse of matrix to exist, its determinant does not equal to zero.\nHere, \n13\nA\n \uf03d\uf02d\n\nPAGE\n32\n\n13\nB\n \uf03d\nHence, both \nA\n and \nB\n invertible matrix. \n \nHence, option (B) is correct. \n \nFrom option (C) : \n \nSymmetric matrix,\nT\nA\nA\n\uf03d\n\n2\n3\nA\n\uf0e9\n\uf0f9\n\uf03d\uf0ea\n\uf0fa\n\uf02d\n\uf0eb\n\uf0fb\n3\n2\nFor\n\nT\nA\n\uf0e9\n\uf0f9\n\uf03d\uf0ea\n\uf0fa\n\uf02d\n\uf0eb\n\uf0fb\n3\n2\n\n\n2\n3\nT\nA\nA\n\uf03d\n\uf05c\n3\n2\nB\n\uf02d\n\uf0e9\n\uf0f9\n\uf03d\uf0ea\n\uf0fa\n\uf0eb\n\uf0fb\n2\n3\nand\n\nT\nB\n\uf0e9\n\uf0f9\n\uf03d\uf0ea\n\uf0fa\n\uf02d\n\uf0eb\n\uf0fb\n2\n3\n\n3\n2\nT\nB\nB\n\uf0b9\n \n \nHence, \nA\n is symmetric and \nB\n is not symmetric. \n \nHence, option (C) is not correct. \n \nForm option (D) :\n\uf05c\nTrace \n( )\n3 3\n0\nA\n \uf03d\uf02d\uf03d\nTrace \n( )\n2\n2\n4\nB\n \uf03d\n\uf02b\n\uf03d\nHence, if trace \nA \nis zero, then its not necessary that trace \nB\n is also zero. \n \nHence, option (D) is not correct. \n \nHence, the correct options are (A) and (B).\n \nQuestion 48\n \n \nLet \n1\nS\n and\n 2\nS\n be two stacks. \n1\nS\n has capacity of 4 elements. \n2\nS\n has capacity of 2 elements. \n1\nS\n already \nhas 4 elements : 100, 200, 300, and 400, whereas \n2\nS\n is empty, as shown below.\nOnly the following three operations are available : \n \nPushTo\n 2\nS\n : Pop the top element from \n1\nS\n and push it on \n2\nS\n \n \nPushTo\n 1\nS\n : Pop the top element from \n2\nS\n and push it on \n1\nS\n\nPAGE\n33\n\nGenerateOutput: Pop the top element from \n1\nS\n and output it to the user \n \nNote that the pop operation is not allowed on an empty stack and the push operation is not allowed on a \nfull stack. \n \nWhich of the following output sequences can be generated by using the above operations ?\n[Data Structure, 2 Stack queue]\n(A) 100, 200, 400, 300 \n(B) 200, 300, 400, 100 \n \n(C) 400, 200, 100, 300 \n(D) 300, 200, 400, 100 \nAns. \n(B, C, D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nOption B :\n First pop two items 400, 300 from \n1\nS\n and push it to \n2\nS\n1\n200,100\nS\n \uf03d\n \n2\n300,400\nS\n \uf03d\n print 200 as output\nPop 300 from \n2\nS\n and push it into \n1\nS\n print 300.\nNow \n1\n100\nS\n \uf03d\n and \n2\n400\nS\n \uf03d\npop 400 from\n2\nS\n and push it back to \n1\nS\nOutput:\n 200, 300, 400, 100\nOption C :\n (400, 200, 100, 300) print 400 from \n1\nS\nPop 300 from \n1\nS\n and push to \n2\nS\n print 200, 100 from\n1\nS\nPop 300 from \n2\nS\n and push it to\n1\nS\n print 300\nOutput:\n 400, 200, 100, 300\nOption D :\n 300, 200, 400, 100\nPop 400 from \n1\nS\n and push to \n2\nS\nPrint 300, 200\nPop 400 from \n2\nS\n and push to\n1\nS\n1\n400,100\nS\n \uf03d\nPrint 400, 100\nOutput:\n 300, 200, 400, 100\nHence, the correct option (B), (C) & (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/47/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/47/exp.webp
new file mode 100644
index 0000000..ec21899
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/47/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/47/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/47/q.webp
new file mode 100644
index 0000000..f82eaa3
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/47/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/49/data.json b/frontend/public/assets/gate/cs/questions/2024-N/49/data.json
new file mode 100644
index 0000000..852f5bc
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/49/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "49",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 49\n \n \nWhich of the following is/are EQUAL to 224 in radix-5 (i.e., base-5) notation ?\n[Digital Logic, 1 Number System] \n \n(A) 64 in radix-10 \n(B) 100 in radix-8\n\nPAGE\n34\n\n(C) 50 in radix-16 \n(D) 121 in radix-7 \nAns. \n(A, B, D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n0\n1\n2\n5\n10\n(224)\n4 5\n2 5\n2 5\n(4 10\n50)\n\uf03d\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf03d\n\uf02b\n\uf02b\n10\n(64)\n\uf03d\n0\n1\n2\n8\n10\n(100)\n0 8\n0 8\n1 8\n(0\n0\n64)\n\uf03d\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf03d\n\uf02b\n\uf02b\n10\n(64)\n\uf03d\n0\n1\n16\n(50)\n0 16\n5 16\n(0\n80)\n\uf03d\uf0b4\n\uf02b\uf0b4\n\uf03d\n\uf02b\n10\n(80)\n\uf03d\n0\n1\n2\n7\n10\n10\n(121)\n1 7\n2 7\n1 7\n(1 14\n49)\n(64)\n\uf03d\uf0b4\n\uf02b\uf0b4\n\uf02b\uf0b4\n\uf03d\n\uf02b\n\uf02b\n\uf03d\nHence, the correct option are (A), (B) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/49/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/49/exp.webp
new file mode 100644
index 0000000..9ed43c4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/49/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/49/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/49/q.webp
new file mode 100644
index 0000000..749286a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/49/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/50/data.json b/frontend/public/assets/gate/cs/questions/2024-N/50/data.json
new file mode 100644
index 0000000..071f6bc
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/50/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "50",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(C, D)\n\nPAGE\n35",
+ "question_text": "Question 50\n \n \nConsider 4-variable functions \n1, 2, 3, 4\nf\nf\nf\nf\n expressed in sum-of-minterms form as given below :\n\uf028\n\uf029\n1\n1,2,3,5,7,8,11,13\nf\n \uf03d\uf0e5\n\uf028\n\uf029\n2\n1,3,5,7,11,13,15\nf\n\uf03d\uf0e5\n\uf028\n\uf029\n3\n0,1,4,11\nf\n\uf03d\uf0e5\n\uf028\n\uf029\n4\n0,2,6,13\nf\n\uf03d\uf0e5\nWith respect to the circuit given above, which of the following options is/are CORRECT ?\n(Digital logic, 2 Boolean Algebra)\n(A) \n\uf028\n\uf029\n0,1,2,11,13\nY\n \uf03d\uf0e5\n \n(B) \n\uf028\n\uf029\n3,4,5,6,7,8,9,10,12,14,15\nY\n \uf03d\uf050\n(C) \n\uf028\n\uf029\n0,1,2,3,4,5,6,7\nY\n \uf03d\uf0e5\n \n(D) \n\uf028\n\uf029\n8,9,10,11,12,13,14,15\nY\n \uf03d\uf050",
+ "answer_text": "(C, D)\n\nPAGE\n35",
+ "explanation_text": "Sol. \nAs per given diagram \n1\n2\n( ,\n)\nf\nf\n and \n3\n4\n(\n,\n)\nf\nf\nwill go for AND product and then, they will go for XOR\nfunction.\n(0,1,2,3,4,5,6,7)\nY\n \uf03d\uf0e5\n(8,9,10,11,12,13,14,15)\nY\n \uf03d\uf070\nHence, the correct option are (C) and (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/50/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/50/exp.webp
new file mode 100644
index 0000000..5759c8d
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/50/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/50/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/50/q.webp
new file mode 100644
index 0000000..0fde40f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/50/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/51/data.json b/frontend/public/assets/gate/cs/questions/2024-N/51/data.json
new file mode 100644
index 0000000..bbb3b68
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/51/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "51",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 51\n \n \nLet \nG\n be an undirected connected graph in which every edge has a positive integer weight. Suppose that \nevery spanning tree in \nG\n has even weight. Which of the following statements is/are TRUE for every such \ngraph \nG\n ? \n \n \n \n[Data Structure, 6 Graph] \n \n(A) All edges in \nG\n have even weight \n \n(B) All edges in \nG\n have even weight OR all edges in \nG\n have odd weight \n \n(C) In each cycle \nC\n in \nG\n , all edges in \nC\n have even weight \n \n \n(D) In each cycle \nC\n in \nG\n , either all edges in \nC\n have even weight OR all edges in \nC\n have odd weight \nAns. \n(D)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \nGiven tree is spanning tree, not about minimum spanning tree. Hence for every spanning tree in G has an \neven weight or all edges in \nC\n have odd weight.\nHence, the correct option is (D)."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/51/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/51/exp.webp
new file mode 100644
index 0000000..4b18c7f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/51/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/51/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/51/q.webp
new file mode 100644
index 0000000..87c4974
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/51/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/52/data.json b/frontend/public/assets/gate/cs/questions/2024-N/52/data.json
new file mode 100644
index 0000000..3ec9327
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/52/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "52",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(B, C)",
+ "question_text": "Question 52\nConsider a context - free grammar \nG \n with the following 3 rules\n,\n,\nS\naS S\naSbS S\nc\n\uf0ae\n\uf0ae\n\uf0ae\nLet \n( ).\nw\nL G\n\uf0ce\n Let \n( ),\n( ),\n( )\na\nb\nc\nn w n w n w\n denote the number of times \na\n, \nb\n, \nc\n occur in \nw\n, respectively. Which\nof the following statements is/are TRUE ? \n \n \n[Theory of Computation, 1 finite Automata]\n(A) \n( )\n( )\na\nb\nn w\nn w\n\uf03e\n \n(B) \n( )\n( )\n2\na\nc\nn w\nn w\n\uf03e\n\uf02d\n(C) \n( )\n( ) 1\nc\nb\nn w\nn w\n\uf03d\n\uf02b\n \n(D) \n( )\n( )*2\nc\nb\nn w\nn w\n\uf03d",
+ "answer_text": "(B, C)",
+ "explanation_text": "Sol.\n \nL\n = {\nc, ac, aac, acbc, aacbaac, acbaacba,\n \u2026\u2026..}\n(A) Not mentioned about \nC\n, where \nC\n is minimum string \nacbc\n number of \na\u2019s\n and \nb\u2019s\n are equal so always\nnot greater than. string of language.\n(B)\n aacbc\n, 2> (2-1) true for any string of language\n(C) True for any string\n(D) \nac\n, \n1\n0*2\n\uf0b9\n, \nacbaacbc,\n \n3\n2*2.\n\uf0b9\n false\nHence, the correct option are (B) and (C).\n\nPAGE\n36\n"
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/52/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/52/exp.webp
new file mode 100644
index 0000000..b656104
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/52/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/52/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/52/q.webp
new file mode 100644
index 0000000..2523f41
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/52/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/53/data.json b/frontend/public/assets/gate/cs/questions/2024-N/53/data.json
new file mode 100644
index 0000000..59f14fb
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/53/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "53",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 53\n \n \nConsider a disk with the following specifications : rotation speed of 6000 RPM, average seek time of 5 \nmilliseconds, 500 sectors/track, 512-byte sectors. A file has content stored in 3000 sectors located \nrandomly on the disk. Assuming average rotational latency, the total time (in seconds, rounded off to 2 \ndecimal places) to read the entire file from the disk is __________.\n[Operating System, 5 File System and Device Management]\n \nAns. \n(29.50 to 30.50\n) \nSol.\n \nTotal time (T) = No. of sectors \n\uf0b4\n (Avg. time per sector for random access)\n3000\nT\n \uf03d\n\uf0b4\n (Avg. seek time + Avg. rotational latency + transfers time)\n10\n1\n3000\n5\nms\n2\n50\nT\n\uf0e6\n\uf0f6\n\uf03d\n\uf0b4\n\uf02b\n\uf02b\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\n\nT\n = 30.06 sec\nHence, the correct answer is 30.06 sec.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/53/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/53/q.webp
new file mode 100644
index 0000000..08cca8b
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/53/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/54/data.json b/frontend/public/assets/gate/cs/questions/2024-N/54/data.json
new file mode 100644
index 0000000..d7cc7c0
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/54/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "54",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 54 \n \nConsider a TCP connection operating at a point of time with the congestion window of size 12 MSS \n(Maximum Segment Size), when a timeout occurs due to packet loss. Assuming that all the segments \ntransmitted in the next two RTTs (Round Trip Time) are acknowledged correctly, the congestion window \nsize (in \nMSS\n) during the third RTT will be _________. \n \n \n \n[Computer Network, 4 Transport Layer] \nAns. \n(4 to 4) \nSol.\n \nGiven cwnd = 12 MSS\nNow timeout occurs which makes, cwnd = 1 and ssthreshold \n12\n6MSS\n2\n\uf03d\n\uf03d\nAgain slow start phase will begin.\nAfter 1 RTT, cwnd = 1 MSS.\nAfter 2 RTT, cwnd = 2 MSS.\n1\n2\n4\nRTT-1 RTT-2\nRTT-3\n\nDuring \nrd\n3\n RTT cwnd will be 4 MSS.\nHence, the correct answer is 4.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/54/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/54/q.webp
new file mode 100644
index 0000000..474c907
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/54/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/55/data.json b/frontend/public/assets/gate/cs/questions/2024-N/55/data.json
new file mode 100644
index 0000000..dff9d1e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/55/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "55",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 55\n\nPAGE\n37\n\nConsider an Ethernet segment with a transmission speed of \n8\n10\n bits/sec and a maximum segment length\nof 500 meters. If the speed of propagation of the signal in the medium is \n8\n2 10\n\uf0b4\n meters/sec, then the \nminimum frame size (in bits) required for collision detection is _______.\n[Computer Network, 4 Transport Layer]\n \nAns. \n(500 to 500)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n8\n10 bits/sec\nBw\n \uf03d\n500m\nd\n \uf03d\n8\n2 10 m/sec\nv\n \uf03d\uf0b4\nT\nT\nT\nT\n\uf0e6\n\uf0f6\n\uf0b3\n\uf0e7\n\uf0f7\n\uf0e8\n\uf0f8\nt\n \n=Transmission Time\n2.\n=Propagation Time\nt\np\nFor ethernet\n\np\nf\nd\nB\nV\n\uf0b3\n\uf0b4\n\uf0de\n \n2\ns\nw\nd\nf\nBw\nv\n\uf0b3\n\uf0b4\n\uf0b4\n2\ns\n8\n8\n2 500m\n10 bits/sec\n2 10 m/sec\ns\nf\n\uf0b4\n\uf0b3\n\uf0b4\n\uf0b4\n500bits\ns\nf\n \uf0b3\n\uf05c\n \nmin\n500bit\ns\nf\n\uf03d\nHence, the correct answer is 500 bit."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/55/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/55/exp.webp
new file mode 100644
index 0000000..4ae31a2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/55/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/55/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/55/q.webp
new file mode 100644
index 0000000..88eb218
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/55/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/56/data.json b/frontend/public/assets/gate/cs/questions/2024-N/56/data.json
new file mode 100644
index 0000000..562d48c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/56/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "56",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 56\nA functional dependency \n:\nF X\nY\n\uf0ae\n is termed as a useful function dependency if and only if it satisfies \nall the following three conditions :\n\u2022 \nX\n is not the empty set.\n\u2022 \nY \nis not the empty set\n\u2022 \nIntersection of \nX \n and \nY \nis the empty set\nFor a relation \nR\n with 4 attributes, the total number of possible useful functional dependencies is \n________.\n[Database, 2 Database Design Functional]\n \nAns. \n(50 to 50)",
+ "answer_text": "",
+ "explanation_text": "Sol.\n \n:\nF X\nY\n\uf0ae\nCase I:\n when one element is present on the left side\n\nPAGE\n38\n\n3\n4\n(2\n1)\n4 7\n28\nC\n \n\uf0b4\n\uf02d\n\uf03d\n\uf0b4\n\uf03d\n\n1\nCase II:\n When 2 element are present on the left side\n2\n4\n(2\n1)\n6 3\n18\nC\n \n\uf0b4\n\uf02d\n\uf03d\n\uf0b4\n\uf03d\n\n2\nCase III:\n When 3 element are present on left side.\n1\n4\n(2\n1)\n4 1\n4\nC\n \n\uf0b4\n\uf02d\n\uf03d\n\uf0b4\uf03d\n\n3\nTotal functional dependency = 28+18+4\n= 50\nHence, the correct answer is 50."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/56/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/56/exp.webp
new file mode 100644
index 0000000..e238f80
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/56/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/56/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/56/q.webp
new file mode 100644
index 0000000..35fc339
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/56/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/57/data.json b/frontend/public/assets/gate/cs/questions/2024-N/57/data.json
new file mode 100644
index 0000000..1b24301
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/57/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "57",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 57\n \n \nA processor with 16 general purpose registers uses a 32-bit instruction format. The instruction format \nconsists of an opcode field, an addressing mode field, two register operand fields, and a 16-bit scalar field. \nIf 8 addressing modes are to be supported, the maximum number of unique opcodes possible for every \naddressing mode is __________. \n \n[Computer Organization & Architecture, 1 Machine Instruction & Addressing Format] \nAns. \n(32 to 32) \nSol.\nInstructions\n32 bit\nOpcode\nAdd mode\nRegister 2\nRegister 1\nScaler\n8\n2\nlog\n3\n\uf03d\n4bits\n16\n2\nlog\n4\n\uf03d\n16 bits\n32\n(3\n2 4 16)\n\uf02d\n\uf02b\uf0b4\uf02b\n32\n27\n5bit\n\uf03d\n\uf02d\n\uf03d\n\nSo, maximum no. of unique opcode possible \n5\n2\n32\n\uf03d\n\uf03d\nHence, the correct answer is 32.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/57/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/57/q.webp
new file mode 100644
index 0000000..371fab6
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/57/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/58/data.json b/frontend/public/assets/gate/cs/questions/2024-N/58/data.json
new file mode 100644
index 0000000..86b7f23
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/58/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "58",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 58\n \n \nA non-pipelined instruction execution unit operating at 2 GHz takes an average of 6 cycles to execute an \ninstruction of a program \nP\n . The unit is then redesigned to operate on a 5-stage pipeline at 2 GHz. Assume \nthat the ideal throughput of the pipelined unit is 1 instruction per cycle. In the execution of program \nP\n ,\n\nPAGE\n39\n\n20% instructions incur an average of 2 cycles stall due to data hazards and 20% instructions incur an \naverage of 3 cycles stall due to control hazards. The speedup (rounded off to one decimal place) obtained \nby the pipelined design over the non-pipelined design is _______.\n[Computer Organization & Architecture, 3 Instruction Pipelining]\n \nAns. \n3 (2.9 to 3.1) \nSol.\n \nFor non-pipelined :\n9\n1\n1\n1\nsecond\nFrequency\n2GHz\n2 1\n0.5 \n0\nns\nn\nT\n \uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf0b4\nAverage instruction execution time (non-pipelined)\nnon-pipelined\nn\nCPI\nT\n\uf02a\n6 0.5ns\n3.0ns\n\uf02a\n\uf03d\nFor pipelined :\n9\n1\n1\n1\nsecond\nFrequency\n2GHz\n2 1\n0.5 \n0\nns\np\nT\n \uf03d\n\uf03d\n\uf03d\n\uf03d\n\uf0b4\nAverage instruction execution time (pipelined)\npipelined\np\nCPI\nT\n\uf02a\n2 0.5ns\n1ns\n\uf02a\n\uf03d\nProgram\nHazard\nData\nHazard\nInstruction\nControl\nRemaining\n20%\n20%\n60%\n(1 +2)\n(1 +3)\n(1 +0)\n\nStall\nStall\nStall\npipelined\n0.6(1 0)\n0.2(1 3)\n0.2(1 2)\nCPI\n\uf03d\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf02b\npipelined\n0.6 1 0.2 4\n0.2 3\nCPI\n\uf03d\n\uf0b4\uf02b\n\uf0b4\uf02b\n\uf0b4\npipelined\n0.6\n0.8\n0.6\n2.0\nCPI\n\uf03d\n\uf02b\n\uf02b\n\uf03d\nT\nT\n\uf03d\n\uf03d\n\uf03d\nSpeed up \n3ns\n3\n1ns\nn\np\n\nPAGE\n40\n\nHence, the correct answer is 3.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/58/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/58/q.webp
new file mode 100644
index 0000000..95121d5
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/58/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/59/data.json b/frontend/public/assets/gate/cs/questions/2024-N/59/data.json
new file mode 100644
index 0000000..7a79fc9
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/59/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "59",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(9 to 9) \n \nSol.\nb\nc\n1\n1\ng\na\nd\n1\n1\ne\nf\n\n3 choice\n3 choice\nNo. of MST \n1\n1\n3\n3\nC\nC\n\uf03d\n\uf0b4\n3 3\n9\n\uf03d\uf0b4\uf03d\nHence, the correct answer is 9.",
+ "question_text": "Question 59\n \n \nThe number of distinct minimum-weight spanning trees of the following graph is ________.\n[Data Structure, Graph]\n\n3\nb\nc\n2\n2\n1\n1\n2\n2\ng\na\nd\n2\n2\n1\n1\ne\nf\n3",
+ "answer_text": "(9 to 9) \n \nSol.\nb\nc\n1\n1\ng\na\nd\n1\n1\ne\nf\n\n3 choice\n3 choice\nNo. of MST \n1\n1\n3\n3\nC\nC\n\uf03d\n\uf0b4\n3 3\n9\n\uf03d\uf0b4\uf03d\nHence, the correct answer is 9.",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/59/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/59/q.webp
new file mode 100644
index 0000000..b13b79f
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/59/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/6/data.json b/frontend/public/assets/gate/cs/questions/2024-N/6/data.json
new file mode 100644
index 0000000..2da096d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/6/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "6",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 6 \n \nSequence the following sentences in a coherent passage. \n \n \n \n [Verbal Ability, 6]\n \n \nP \n: \nThis fortuitous geological event generated a colossal amount of energy and heat that resulted in the \nrocks rising to an average height of 4 km across the contact zone. \n \nQ \n: Thus, the geophysicists tend to think of the Himalayas as an active geological event rather than as a\nstatic geological feature. \n \nR \n: \nThe natural process of the cooling of this massive edifice absorbed large quantities of atmospheric \ncarbon dioxide, altering the earth's atmosphere and making it better suited for life. \n \nS \n: \nMany millennia ago. a breakaway chunk of bedrock from the Antarctic Plate collided with the \nmassive Eurasian Plate. \n \n(A) QPSR \n(B) QSPR \n \n(C) SPRQ \n(D) SRPQ \nAns. \n(C) \nSol.\n \nThe correct sequence is (\nC\n) SPRQ. It begins with the explanation (s) of the fortuitous geological event \nwhere a chunk of bedrock collided, followed by the geophysicists perspective \n(\ud835\udc43)\n of the Himalayas as an\n\nPAGE\n5\n\nactive geological event then, it discusses the natural process of cooling (\nR\n) and concludes with the impact \non the earth's atmosphere (\nQ\n) . Providing a coherent flow of geological events.\nHence, the correct option is (C).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/6/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/6/q.webp
new file mode 100644
index 0000000..4769bd2
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/6/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/60/data.json b/frontend/public/assets/gate/cs/questions/2024-N/60/data.json
new file mode 100644
index 0000000..6750977
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/60/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "60",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(2 to 2) \nSol.\n\nPAGE\n41\n\nB\nR\nB\nR\nR\nB\n\nB\nR\nGiven :\n graph is bipartite, where alternating 4 vertices can be put in one part and remaining alternation 4 \nvertices in the second part.\nA bipartite graph with at least 1 edge always has chromatic No. 2.",
+ "question_text": "Question 60\n \n \nThe chromatic number of a graph is the minimum number of colours used in a proper colouring of the\ngraph. The chromatic number of the following graph is __________.\n[Discrete Mathematics, 4 Graph Theory]\n",
+ "answer_text": "(2 to 2) \nSol.\n\nPAGE\n41\n\nB\nR\nB\nR\nR\nB\n\nB\nR\nGiven :\n graph is bipartite, where alternating 4 vertices can be put in one part and remaining alternation 4 \nvertices in the second part.\nA bipartite graph with at least 1 edge always has chromatic No. 2.",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/60/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/60/q.webp
new file mode 100644
index 0000000..1f85c72
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/60/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/61/data.json b/frontend/public/assets/gate/cs/questions/2024-N/61/data.json
new file mode 100644
index 0000000..1faf6b6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/61/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "61",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(34 to 34)",
+ "question_text": "Question 61\n \n \nA processor uses a 32-bit instruction format and supports byte-addressable memory access. The ISA of\nthe processor has 150 distinct instructions. The instructions are equally divided into two types, namely\nR-type and I-type. whose formats are shown below.\nR-type Instruction Format:\nOPCODE \nUNUSED \nDST Register \nSRC Register 1 \nSRC Register 2\nI-type Instruction Format:\nOPCODE \nDST Register \nSRC Register \n# Immediate value/address\nIn the OPCODE. 1 bit is used to distinguish between I-type and R-type instructions and the remaining\nbits indicate the operation. The processor has 50 architectural registers, and all register fields in the\ninstructions are of equal size.\nLet\n X\n be the number of bits used to encode the UNUSED field. \nY\n be the number of bits used to encode\nthe OPCODE field, and \nZ\n be the number of bits used to encode the immediate value/address field. The\nvalue of \n2\nX\nY\nZ\n\uf02b\n\uf02b\n is ___________.\n[Computer Organization & Architecture, 1 Machine Instruction & Addressing Format]",
+ "answer_text": "(34 to 34)",
+ "explanation_text": "Sol.\n \nOpcode field (\nY\n) :\nThere are 150 instructions, and they are equally divided into two types. Therefore, there are 75 \nI\n-type \ninstructions and 75 \nR\n-type instructions. Since one bit is used to distinguish between instruction types, the \nnumber of bits used to encode opcode field is \n(1 7)\n8\nY\n \uf03d\n\uf02b\n\uf03d\nRegister field :\nThere are 50 architectural registers and all register fields in the instructions are of equal size. Therefore, \nthe number of bits used to encode register field is 6.\n\nPAGE\n42\n\nUnused field (\nX\n) :\nThe number of bits used to encode unused field in \nR\n-type instructions is \nX\n \n32 (8 6\n6\n6)\n6\n\uf03d\n\uf02d\n\uf02b\uf02b\uf02b\n\uf03d\nImmediate value/address field (\nZ\n) :\nThe number of bits used to encode immediate value/address field in \nI\n-type instructions is\n32\n(8\n6\n6)\n12\nZ\n \uf03d\n\uf02d\n\uf02b\uf02b\n\uf03d\nTherefore, the values of \nX\n, \nY\n, and \nZ\n are :\nX\n = 6 bits (UNUSED field)\nY\n = 8 bits (OPCODE field)\nZ\n = 12 bits (immediate value/address field)\nSo, the answer is \n6\n2 8 12\n34\n\uf02b\uf0b4\uf02b\n\uf03d\nHence, the correct answer is 34."
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/61/exp.webp b/frontend/public/assets/gate/cs/questions/2024-N/61/exp.webp
new file mode 100644
index 0000000..ed92dab
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/61/exp.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/61/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/61/q.webp
new file mode 100644
index 0000000..9aa78b4
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/61/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/62/data.json b/frontend/public/assets/gate/cs/questions/2024-N/62/data.json
new file mode 100644
index 0000000..d67b68e
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/62/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "62",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(15 to 15) \nSol.\n \n*\n*(\n*\n*)*\nb ab\nab ab\nLength 1 \n\uf0ae\n a \n \n \n\u2026(i)\nLength 2 \n\uf0ae\n ba, ab \n \n \n\u2026(ii)\nLength 3 \n\uf0ae\n bba, abb, bab, aaa \n\u2026(iv)\nLength 4 \n\uf0ae\n \n4!\n3!\n \n\uf03d\n4\n(3 | )\nb a\nLength 4 \n\uf0ae\n \n4!\n3 |\n4\n3!\na b\n \uf03d\n\uf03d\nTotal \n1 2\n4\n4\n4\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf03d\n(15)\nHence, the correct answer is 15.",
+ "question_text": "Question 62\nLet \n1\nL\n be \nthe \nlanguage \nrepresented \nby \nthe \nregular \nexpression \n\uf028\n\uf029\nb ab\nab ab\n\uf02a\n\uf02a\n\uf02a\n\uf02a\n\uf02a\n \nand\n\uf028\n\uf029\n\uf07b\n\uf07d\n2\n|\n4\nL\nw\na\nb\nw\n\uf02a\n\uf03d\n\uf0ce\n\uf02b\n\uf0a3\n, where \nw\n denotes the length of string \nw\n. The number of strings in \n2\nL\n which\nare also in \n1\nL\n is __________. \n \n \n[Theory of Computation \u2013 Finite Automata]",
+ "answer_text": "(15 to 15) \nSol.\n \n*\n*(\n*\n*)*\nb ab\nab ab\nLength 1 \n\uf0ae\n a \n \n \n\u2026(i)\nLength 2 \n\uf0ae\n ba, ab \n \n \n\u2026(ii)\nLength 3 \n\uf0ae\n bba, abb, bab, aaa \n\u2026(iv)\nLength 4 \n\uf0ae\n \n4!\n3!\n \n\uf03d\n4\n(3 | )\nb a\nLength 4 \n\uf0ae\n \n4!\n3 |\n4\n3!\na b\n \uf03d\n\uf03d\nTotal \n1 2\n4\n4\n4\n\uf02b\n\uf02b\n\uf02b\n\uf02b\n\uf03d\n(15)\nHence, the correct answer is 15.",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/62/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/62/q.webp
new file mode 100644
index 0000000..a8a9963
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/62/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/63/data.json b/frontend/public/assets/gate/cs/questions/2024-N/63/data.json
new file mode 100644
index 0000000..e5d6e23
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/63/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "63",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(4 to 4) \nSol.\n \nExplanation :\nWe will solve this question via the brute force approach, as it will help in understand this problem easily \n:\nConsider \n2\n3\n4\n{(0,0,0),(0,1,0),(0,2,0),(1,0,0),(1,1,0)......(1,1,3),(1,2,3)}\nZ\nZ\nZ\n\uf02a\n\uf02a\n\uf03d\nThere are a total 24 cases possible.\nWe have to check each and every element in the form whether they are satisfying \n2\n(0,0,0)\nx\n \uf03d\n or not.\nExample\n \n:\n \n2\n3\n4\n(0,0,0)\n(0,0,0)\n(0\n0,0\n0,0\n0)\n(0,0,0)\n\uf0c5\n\uf03d\n\uf0c5\n\uf0c5\n\uf0c5\n\uf03d\n. Hence, it is valid and it is also an\nidentity.\nUpon doing on all 24 elements, you will get these sets satisfy the condition: \n(0,0,0),(1,0,0),(0,0,2)\n and\n(1,0,2)\n .\nTherefore, the total number of possible cases are 4.\nHence, the correct answer is 4.",
+ "question_text": "Question 63\nLet \nn\nZ\n be the group of integers \n{0,1,2,.....,\n1}\nn\n\uf02d\nwith addition modulo n as the group operation. The\nnumber of elements in the group \n2\n3\n4\nZ\nZ\nZ\n\uf0b4\n\uf0b4\nthat are their own inverses is _______.\n\nPAGE\n43\n\n[Discrete Mathematics, 3 Combinatories]",
+ "answer_text": "(4 to 4) \nSol.\n \nExplanation :\nWe will solve this question via the brute force approach, as it will help in understand this problem easily \n:\nConsider \n2\n3\n4\n{(0,0,0),(0,1,0),(0,2,0),(1,0,0),(1,1,0)......(1,1,3),(1,2,3)}\nZ\nZ\nZ\n\uf02a\n\uf02a\n\uf03d\nThere are a total 24 cases possible.\nWe have to check each and every element in the form whether they are satisfying \n2\n(0,0,0)\nx\n \uf03d\n or not.\nExample\n \n:\n \n2\n3\n4\n(0,0,0)\n(0,0,0)\n(0\n0,0\n0,0\n0)\n(0,0,0)\n\uf0c5\n\uf03d\n\uf0c5\n\uf0c5\n\uf0c5\n\uf03d\n. Hence, it is valid and it is also an\nidentity.\nUpon doing on all 24 elements, you will get these sets satisfy the condition: \n(0,0,0),(1,0,0),(0,0,2)\n and\n(1,0,2)\n .\nTherefore, the total number of possible cases are 4.\nHence, the correct answer is 4.",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/63/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/63/q.webp
new file mode 100644
index 0000000..0e8ecfa
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/63/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/64/data.json b/frontend/public/assets/gate/cs/questions/2024-N/64/data.json
new file mode 100644
index 0000000..6a17554
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/64/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "64",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 64 \n \nConsider a 32-bit system with 4 KB page size and page table entries of size 4 bytes each. Assume\n10\n1\n2\nKB\n \uf03d\nbytes. The OS uses a 2-level page table for memory management, with the page table\ncontaining an outer page directory and an inner page table. The OS allocates a page for the outer page \ndirectory upon process creation. The OS uses demand paging when allocating memory for the inner page \ntable, i.e,. a page of the inner page table is allocated only if it contains at least one valid page table entry. \n \nAn active process in this system accesses 2000 unique pages during its execution, and none of the pages \nare swapped out to disk. After it completes the page accesses, let \nX\n denote the minimum and \nY\n denote \nthe maximum number of pages across the two levels of the page table of the process.\nThe value of \nX\nY\n\uf02b\n is ________.\n[Operating System, 4 Memory Management & Virtual Memory] \nAns. \n1028 (1028 to 1028) \nSol.\n \nPage size = 4 kB\n12\n2\n2\n2\n2\nlog\n12log\n12bit\n\uf03d\n\uf03d\n\uf03d\nNo. of bits\n32\n10 bit\n10 - bit\n12 - bit\n\nX\n = Minimum No. of page\n\nPAGE\n44\n\nY\n = Maximum No. of page\nFor \nX\n, there will be Minimum of 3 page and for\n Y\n there will be = 1 + 1024 =1025\nHence, the total No. of page i.e \nX\n +\n Y\n = 1025 + 3 = 1028\nHence, the correct answer is 1028.",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/64/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/64/q.webp
new file mode 100644
index 0000000..5081724
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/64/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/65/data.json b/frontend/public/assets/gate/cs/questions/2024-N/65/data.json
new file mode 100644
index 0000000..2e89db4
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/65/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "65",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "",
+ "question_text": "Question 65\nConsider the following augmented grammar, which is to be parsed with a SLR parser. The set of terminals \nis \n{ , , , ,#,@}\na b c d\n'\nS\nS\n\uf0ae\n'\nS\nSS Aa bAc Bc bBa\n\uf0ae\n#\nA\nd\n\uf0ae\n@\nB\n \uf0ae\nLet \n0\nCLOSURE({ '\n})\nI\nS\nS\n\uf03d\n\uf0ae\uf0b7\n. The number of items in the set GOTO \n0\n( , )\nI S\n is _________.\n[Complier Design, 2 Parsing technique]\n \nAns. \n(9 to 9) \nSol.\n.\nS\nS\n\uf0ae\n \nS\nS S\n\uf0ae\n\uf0d7\n \nS\nSS\n\uf0ae\uf0d7\n \nS\nAa\n\uf0ae\uf0d7\n \nS\nbAC\n\uf0ae\uf0d7\n \nS\nBc\n\uf0ae\uf0d7\n \nS\nbAb\n\uf0ae\uf0d7\n \n#\nS\nd\n\uf0ae\uf0d7\n \n@\nB\n \uf0ae\uf0d7\nS\nS\n\uf0ae\uf0d7\n \nS\nSS\n\uf0ae\uf0d7\n \n \nS\nAa\n\uf0ae\uf0d7\n \nS\nbAC\n\uf0ae\uf0d7\n \nS\nBc\n\uf0ae\uf0d7\n \nS\nbAb\n\uf0ae\uf0d7\n \n#\nA\nd\n\uf0ae\uf0d7\n \n@\nB\n \uf0ae\uf0d7\nS\n\uf0be\uf0be\uf0ae\nFrom above DFA we can see that Goto (closure (\n0\nI\n ), s) contain 9 items.\nHence, the correct answer is 9.\n\uf076\uf076\uf076\uf076\n",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/65/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/65/q.webp
new file mode 100644
index 0000000..8673d2a
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/65/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/7/data.json b/frontend/public/assets/gate/cs/questions/2024-N/7/data.json
new file mode 100644
index 0000000..1c5add2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/7/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "7",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "NAT",
+ "key": "",
+ "question_text": "Question 7 \n \nA person sold two different items at the same price. He made 10% profit in one item, and 10% loss in \nthe other item. In selling these two items, the person made a total of \n[\nNumerical Ability, 2]\n \n \n(A) 1% profit \n(B) 2% profit \n \n(C) 1% loss \n(D) 2% loss \nAns. \n(C) \nSol.\n \nCommon selling price = '\ns\n' each\none at profit \n= \ud835\udc5d%\nanother at Loss \n= \ud835\udc5d%\n\ud835\udc5d\n2\nthen overall Loss% =\n (\n100\n) %\nhere \n\ud835\udc5d= 10\n(10)\n2\nLoss \n% = (\n100\n \n) % = 1%\n Loss\nHence, the correct option is (C).",
+ "answer_text": "",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/7/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/7/q.webp
new file mode 100644
index 0000000..113c90c
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/7/q.webp differ
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/8/data.json b/frontend/public/assets/gate/cs/questions/2024-N/8/data.json
new file mode 100644
index 0000000..62f4c87
--- /dev/null
+++ b/frontend/public/assets/gate/cs/questions/2024-N/8/data.json
@@ -0,0 +1,11 @@
+{
+ "id": "8",
+ "stream": "computer-science-information-technology",
+ "packet": "2024-N",
+ "year": "2024",
+ "type": "MCQ",
+ "key": "(D) \nSol.\n \nGiven : \n \nPie charts depicts the shares of various power generating technologies in the total electricity generation of \nthe country for the years 2007 and 2023.\nYear\n2023\nYear\n2007\nSolar 5%\nCoal\n20%\nSolar\nCoal\n35%\n20%\nHydro\n30%\nGas\n15%\nWind 5%\nHydro\nGas\n25%\nWind\n35%\n10%\nShare of renewable sources of electricity in year 2007 \n \n \n \n= Hydro 30 % + Solar 5 % + Wind 5% \n \n \n \n= 40 % \n \nShare of renewable sources of electricity in year 2023 \n \n \n \n= Hydro 35 % + Solar 20% + Wind 10% \n \n \n \n= 65 % \n \nPercentage increase in the share of renewable sources of electricity from 2007 to 2023\n\uf02d\n\uf03d\n\uf0b4\n65\n40 100\n40\n25 100\n40\n\uf03d\n\uf0b4\n62.5%\n\uf03d\n \n \nHence, the correct option is (D). \nQuestion 9 \n \nA cube is to be cut into 8 pieces of equal size and shape. Here, each cut should be straight and it should \nnot stop till it reaches the other end of the cube. The minimum number of such cuts required is\n[\nLogical Reasoning, 3]\n \n \n(A) 3 \n(B) 4 \n \n(C) 7 \n(D) 8 \n \n(A) \nSol.\n \nOnly 3 cuts are required to cut a cube into 8 equal size cubes. One along the \n\ud835\udc65\n-axis, one along the \n\ud835\udc66\n-axis \nand one along the \n\ud835\udc67\n-axis.\nHence, the correct option is (A).",
+ "question_text": "Question 8 \n \nThe pie charts depict the shares of various power generation technologies in the total electricity \ngeneration of a country for the years 2007 and 2023. \n \n \n[\nLogical Reasoning, 1]\nYear\n2023\nYear\n2007\nSolar 5%\nCoal\n20%\nSolar\nCoal\n35%\n20%\nHydro\n30%\nGas\n15%\nWind 5%\nHydro\nGas\n25%\nWind\n35%\n10%\nThe renewable sources of electricity generation consist of Hydro. Solar and Wind. \n \nAssuming that the total electricity generated remains the same from 2007 to 2023. What is the percentage \nincrease in the share of the renewable sources of electricity generation over this period? \n \n(A) 25% \n(B) 50% \n \n(C) 77.5% \n(D) 62.5 %\n\nPAGE\n6\n",
+ "answer_text": "(D) \nSol.\n \nGiven : \n \nPie charts depicts the shares of various power generating technologies in the total electricity generation of \nthe country for the years 2007 and 2023.\nYear\n2023\nYear\n2007\nSolar 5%\nCoal\n20%\nSolar\nCoal\n35%\n20%\nHydro\n30%\nGas\n15%\nWind 5%\nHydro\nGas\n25%\nWind\n35%\n10%\nShare of renewable sources of electricity in year 2007 \n \n \n \n= Hydro 30 % + Solar 5 % + Wind 5% \n \n \n \n= 40 % \n \nShare of renewable sources of electricity in year 2023 \n \n \n \n= Hydro 35 % + Solar 20% + Wind 10% \n \n \n \n= 65 % \n \nPercentage increase in the share of renewable sources of electricity from 2007 to 2023\n\uf02d\n\uf03d\n\uf0b4\n65\n40 100\n40\n25 100\n40\n\uf03d\n\uf0b4\n62.5%\n\uf03d\n \n \nHence, the correct option is (D). \nQuestion 9 \n \nA cube is to be cut into 8 pieces of equal size and shape. Here, each cut should be straight and it should \nnot stop till it reaches the other end of the cube. The minimum number of such cuts required is\n[\nLogical Reasoning, 3]\n \n \n(A) 3 \n(B) 4 \n \n(C) 7 \n(D) 8 \n \n(A) \nSol.\n \nOnly 3 cuts are required to cut a cube into 8 equal size cubes. One along the \n\ud835\udc65\n-axis, one along the \n\ud835\udc66\n-axis \nand one along the \n\ud835\udc67\n-axis.\nHence, the correct option is (A).",
+ "explanation_text": ""
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/questions/2024-N/8/q.webp b/frontend/public/assets/gate/cs/questions/2024-N/8/q.webp
new file mode 100644
index 0000000..1f0b351
Binary files /dev/null and b/frontend/public/assets/gate/cs/questions/2024-N/8/q.webp differ
diff --git a/frontend/public/assets/gate/cs/structure.json b/frontend/public/assets/gate/cs/structure.json
new file mode 100644
index 0000000..94d9617
--- /dev/null
+++ b/frontend/public/assets/gate/cs/structure.json
@@ -0,0 +1,1557 @@
+{
+ "stream": "cs",
+ "stream_code": "computer-science-information-technology",
+ "subjects": [
+ {
+ "name": "theory of computation",
+ "id": "cs_subj_1",
+ "slug": "theory-of-computation",
+ "topics": [
+ {
+ "name": "context free grammar",
+ "id": "cs_subj_1_topic_1",
+ "slug": "context-free-grammar",
+ "md_path": "theory-of-computation/context-free-grammar.md",
+ "questions": [
+ "questions/2021-N/40/",
+ "questions/2023/29/"
+ ]
+ },
+ {
+ "name": "push down automata",
+ "id": "cs_subj_1_topic_2",
+ "slug": "push-down-automata",
+ "md_path": "theory-of-computation/push-down-automata.md",
+ "questions": [
+ "questions/2023/30/"
+ ]
+ },
+ {
+ "name": "regular expressions and finite automata",
+ "id": "cs_subj_1_topic_3",
+ "slug": "regular-expressions-and-finite-automata",
+ "md_path": "theory-of-computation/regular-expressions-and-finite-automata.md",
+ "questions": [
+ "questions/2021-M/19/",
+ "questions/2021-M/31/",
+ "questions/2021-N/34/",
+ "questions/2021-N/56/",
+ "questions/2022/16/",
+ "questions/2024-N/52/",
+ "questions/2024-N/62/"
+ ]
+ },
+ {
+ "name": "context free grammars and push down automata",
+ "id": "cs_subj_1_topic_4",
+ "slug": "context-free-grammars-and-push-down-automata",
+ "md_path": "theory-of-computation/context-free-grammars-and-push-down-automata.md",
+ "questions": [
+ "questions/2021-M/42/",
+ "questions/2022/19/",
+ "questions/2024-N/39/"
+ ]
+ },
+ {
+ "name": "boolean function",
+ "id": "cs_subj_1_topic_5",
+ "slug": "boolean-function",
+ "md_path": "theory-of-computation/boolean-function.md",
+ "questions": [
+ "questions/2021-N/21/"
+ ]
+ },
+ {
+ "name": "graph propertie",
+ "id": "cs_subj_1_topic_6",
+ "slug": "graph-propertie",
+ "md_path": "theory-of-computation/graph-propertie.md",
+ "questions": [
+ "questions/2021-N/64/"
+ ]
+ },
+ {
+ "name": "regular expressions and \ufb01nite automata context free grammars and push down automata",
+ "id": "cs_subj_1_topic_7",
+ "slug": "regular-expressions-and-nite-automata-context-free-grammars-and-push-down-automa",
+ "md_path": "theory-of-computation/regular-expressions-and-nite-automata-context-free-grammars-and-push-down-automa.md",
+ "questions": [
+ "questions/2021-N/33/",
+ "questions/2021-N/36/"
+ ]
+ },
+ {
+ "name": "regular expression",
+ "id": "cs_subj_1_topic_8",
+ "slug": "regular-expression",
+ "md_path": "theory-of-computation/regular-expression.md",
+ "questions": [
+ "questions/2021-N/37/",
+ "questions/2021-N/38/",
+ "questions/2022/18/"
+ ]
+ },
+ {
+ "name": "finite automata",
+ "id": "cs_subj_1_topic_9",
+ "slug": "finite-automata",
+ "md_path": "theory-of-computation/finite-automata.md",
+ "questions": [
+ "questions/2021-N/35/",
+ "questions/2024-M/61/",
+ "questions/2024-N/22/"
+ ]
+ },
+ {
+ "name": "decidability",
+ "id": "cs_subj_1_topic_10",
+ "slug": "decidability",
+ "md_path": "theory-of-computation/decidability.md",
+ "questions": [
+ "questions/2022/17/"
+ ]
+ },
+ {
+ "name": "properties of language",
+ "id": "cs_subj_1_topic_11",
+ "slug": "properties-of-language",
+ "md_path": "theory-of-computation/properties-of-language.md",
+ "questions": [
+ "questions/2024-M/23/",
+ "questions/2024-M/59/"
+ ]
+ },
+ {
+ "name": "monoids group",
+ "id": "cs_subj_1_topic_12",
+ "slug": "monoids-group",
+ "md_path": "theory-of-computation/monoids-group.md",
+ "questions": [
+ "questions/2021-M/1/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "compiler design",
+ "id": "cs_subj_2",
+ "slug": "compiler-design",
+ "topics": [
+ {
+ "name": "front end phase",
+ "id": "cs_subj_2_topic_1",
+ "slug": "front-end-phase",
+ "md_path": "compiler-design/front-end-phase.md",
+ "questions": [
+ "questions/2023/1/"
+ ]
+ },
+ {
+ "name": "syntax directed translation runtime environment",
+ "id": "cs_subj_2_topic_2",
+ "slug": "syntax-directed-translation-runtime-environment",
+ "md_path": "compiler-design/syntax-directed-translation-runtime-environment.md",
+ "questions": [
+ "questions/2021-M/35/"
+ ]
+ },
+ {
+ "name": "lexical analysis",
+ "id": "cs_subj_2_topic_3",
+ "slug": "lexical-analysis",
+ "md_path": "compiler-design/lexical-analysis.md",
+ "questions": [
+ "questions/2021-N/11/",
+ "questions/2021-N/42/",
+ "questions/2022/7/",
+ "questions/2024-N/21/"
+ ]
+ },
+ {
+ "name": "syntax analyzer",
+ "id": "cs_subj_2_topic_4",
+ "slug": "syntax-analyzer",
+ "md_path": "compiler-design/syntax-analyzer.md",
+ "questions": [
+ "questions/2021-N/41/"
+ ]
+ },
+ {
+ "name": "data flow analyse",
+ "id": "cs_subj_2_topic_5",
+ "slug": "data-flow-analyse",
+ "md_path": "compiler-design/data-flow-analyse.md",
+ "questions": [
+ "questions/2021-N/39/"
+ ]
+ },
+ {
+ "name": "parsing technique",
+ "id": "cs_subj_2_topic_6",
+ "slug": "parsing-technique",
+ "md_path": "compiler-design/parsing-technique.md",
+ "questions": [
+ "questions/2024-M/26/",
+ "questions/2024-M/38/"
+ ]
+ },
+ {
+ "name": "code generation and optimization",
+ "id": "cs_subj_2_topic_7",
+ "slug": "code-generation-and-optimization",
+ "md_path": "compiler-design/code-generation-and-optimization.md",
+ "questions": [
+ "questions/2024-M/39/"
+ ]
+ },
+ {
+ "name": "parsing",
+ "id": "cs_subj_2_topic_8",
+ "slug": "parsing",
+ "md_path": "compiler-design/parsing.md",
+ "questions": [
+ "questions/2024-N/40/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "discrete mathematics and combinatoric",
+ "id": "cs_subj_3",
+ "slug": "discrete-mathematics-and-combinatoric",
+ "topics": [
+ {
+ "name": "recurrence relation",
+ "id": "cs_subj_3_topic_1",
+ "slug": "recurrence-relation",
+ "md_path": "discrete-mathematics-and-combinatoric/recurrence-relation.md",
+ "questions": [
+ "questions/2023/5/"
+ ]
+ },
+ {
+ "name": "permutation",
+ "id": "cs_subj_3_topic_2",
+ "slug": "permutation",
+ "md_path": "discrete-mathematics-and-combinatoric/permutation.md",
+ "questions": [
+ "questions/2023/38/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "computer organization and architecture",
+ "id": "cs_subj_4",
+ "slug": "computer-organization-and-architecture",
+ "topics": [
+ {
+ "name": "memory hierarchy",
+ "id": "cs_subj_4_topic_1",
+ "slug": "memory-hierarchy",
+ "md_path": "computer-organization-and-architecture/memory-hierarchy.md",
+ "questions": [
+ "questions/2023/32/",
+ "questions/2024-M/56/"
+ ]
+ },
+ {
+ "name": "instruction execution",
+ "id": "cs_subj_4_topic_2",
+ "slug": "instruction-execution",
+ "md_path": "computer-organization-and-architecture/instruction-execution.md",
+ "questions": [
+ "questions/2023/31/"
+ ]
+ },
+ {
+ "name": "cache memory hierarchy",
+ "id": "cs_subj_4_topic_3",
+ "slug": "cache-memory-hierarchy",
+ "md_path": "computer-organization-and-architecture/cache-memory-hierarchy.md",
+ "questions": [
+ "questions/2021-M/39/"
+ ]
+ },
+ {
+ "name": "machine instructions and addressing mode",
+ "id": "cs_subj_4_topic_4",
+ "slug": "machine-instructions-and-addressing-mode",
+ "md_path": "computer-organization-and-architecture/machine-instructions-and-addressing-mode.md",
+ "questions": [
+ "questions/2021-M/16/",
+ "questions/2021-N/28/",
+ "questions/2021-N/29/",
+ "questions/2021-N/31/",
+ "questions/2024-N/61/"
+ ]
+ },
+ {
+ "name": "memory hierarchy cache main memory and secondary storage",
+ "id": "cs_subj_4_topic_5",
+ "slug": "memory-hierarchy-cache-main-memory-and-secondary-storage",
+ "md_path": "computer-organization-and-architecture/memory-hierarchy-cache-main-memory-and-secondary-storage.md",
+ "questions": [
+ "questions/2021-N/65/"
+ ]
+ },
+ {
+ "name": "i o interface interrupt and dma mode",
+ "id": "cs_subj_4_topic_6",
+ "slug": "i-o-interface-interrupt-and-dma-mode",
+ "md_path": "computer-organization-and-architecture/i-o-interface-interrupt-and-dma-mode.md",
+ "questions": [
+ "questions/2021-N/32/"
+ ]
+ },
+ {
+ "name": "cache hierarchy",
+ "id": "cs_subj_4_topic_7",
+ "slug": "cache-hierarchy",
+ "md_path": "computer-organization-and-architecture/cache-hierarchy.md",
+ "questions": [
+ "questions/2021-N/44/"
+ ]
+ },
+ {
+ "name": "machine instructions and addressing modes alu data path and control unit",
+ "id": "cs_subj_4_topic_8",
+ "slug": "machine-instructions-and-addressing-modes-alu-data-path-and-control-unit",
+ "md_path": "computer-organization-and-architecture/machine-instructions-and-addressing-modes-alu-data-path-and-control-unit.md",
+ "questions": [
+ "questions/2021-N/30/"
+ ]
+ },
+ {
+ "name": "number representation",
+ "id": "cs_subj_4_topic_9",
+ "slug": "number-representation",
+ "md_path": "computer-organization-and-architecture/number-representation.md",
+ "questions": [
+ "questions/2022/49/"
+ ]
+ },
+ {
+ "name": "instruction pipelining",
+ "id": "cs_subj_4_topic_10",
+ "slug": "instruction-pipelining",
+ "md_path": "computer-organization-and-architecture/instruction-pipelining.md",
+ "questions": [
+ "questions/2021-M/50/",
+ "questions/2022/12/",
+ "questions/2024-N/31/",
+ "questions/2024-N/58/"
+ ]
+ },
+ {
+ "name": "memory organization",
+ "id": "cs_subj_4_topic_11",
+ "slug": "memory-organization",
+ "md_path": "computer-organization-and-architecture/memory-organization.md",
+ "questions": [
+ "questions/2022/38/",
+ "questions/2024-M/53/",
+ "questions/2024-M/55/"
+ ]
+ },
+ {
+ "name": "machine instruction and addressing",
+ "id": "cs_subj_4_topic_12",
+ "slug": "machine-instruction-and-addressing",
+ "md_path": "computer-organization-and-architecture/machine-instruction-and-addressing.md",
+ "questions": [
+ "questions/2024-N/14/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "programming and data structure",
+ "id": "cs_subj_5",
+ "slug": "programming-and-data-structure",
+ "topics": [
+ {
+ "name": "big o notation analysis",
+ "id": "cs_subj_5_topic_1",
+ "slug": "big-o-notation-analysis",
+ "md_path": "programming-and-data-structure/big-o-notation-analysis.md",
+ "questions": [
+ "questions/2023/44/"
+ ]
+ },
+ {
+ "name": "activation record",
+ "id": "cs_subj_5_topic_2",
+ "slug": "activation-record",
+ "md_path": "programming-and-data-structure/activation-record.md",
+ "questions": [
+ "questions/2023/26/"
+ ]
+ },
+ {
+ "name": "trees binary search tree",
+ "id": "cs_subj_5_topic_3",
+ "slug": "trees-binary-search-tree",
+ "md_path": "programming-and-data-structure/trees-binary-search-tree.md",
+ "questions": [
+ "questions/2021-M/38/"
+ ]
+ },
+ {
+ "name": "numerical ability",
+ "id": "cs_subj_5_topic_4",
+ "slug": "numerical-ability",
+ "md_path": "programming-and-data-structure/numerical-ability.md",
+ "questions": [
+ "questions/2021-N/10/",
+ "questions/2021-N/22/"
+ ]
+ },
+ {
+ "name": "recursion",
+ "id": "cs_subj_5_topic_5",
+ "slug": "recursion",
+ "md_path": "programming-and-data-structure/recursion.md",
+ "questions": [
+ "questions/2021-N/12/",
+ "questions/2021-N/43/"
+ ]
+ },
+ {
+ "name": "array",
+ "id": "cs_subj_5_topic_6",
+ "slug": "array",
+ "md_path": "programming-and-data-structure/array.md",
+ "questions": [
+ "questions/2021-M/47/",
+ "questions/2021-N/16/",
+ "questions/2024-N/33/",
+ "questions/2024-N/36/",
+ "questions/2024-N/42/"
+ ]
+ },
+ {
+ "name": "linked list",
+ "id": "cs_subj_5_topic_7",
+ "slug": "linked-list",
+ "md_path": "programming-and-data-structure/linked-list.md",
+ "questions": [
+ "questions/2021-N/14/"
+ ]
+ },
+ {
+ "name": "arrays stacks queues linked lists trees binary search trees binary heaps graph",
+ "id": "cs_subj_5_topic_8",
+ "slug": "arrays-stacks-queues-linked-lists-trees-binary-search-trees-binary-heaps-graph",
+ "md_path": "programming-and-data-structure/arrays-stacks-queues-linked-lists-trees-binary-search-trees-binary-heaps-graph.md",
+ "questions": [
+ "questions/2021-N/13/"
+ ]
+ },
+ {
+ "name": "functional dependencie",
+ "id": "cs_subj_5_topic_9",
+ "slug": "functional-dependencie",
+ "md_path": "programming-and-data-structure/functional-dependencie.md",
+ "questions": [
+ "questions/2022/52/"
+ ]
+ },
+ {
+ "name": "arrays stacks queues linked list",
+ "id": "cs_subj_5_topic_10",
+ "slug": "arrays-stacks-queues-linked-list",
+ "md_path": "programming-and-data-structure/arrays-stacks-queues-linked-list.md",
+ "questions": [
+ "questions/2022/36/"
+ ]
+ },
+ {
+ "name": "c programming",
+ "id": "cs_subj_5_topic_11",
+ "slug": "c-programming",
+ "md_path": "programming-and-data-structure/c-programming.md",
+ "questions": [
+ "questions/2024-M/48/",
+ "questions/2024-N/13/"
+ ]
+ },
+ {
+ "name": "graph traversal",
+ "id": "cs_subj_5_topic_12",
+ "slug": "graph-traversal",
+ "md_path": "programming-and-data-structure/graph-traversal.md",
+ "questions": [
+ "questions/2021-M/53/"
+ ]
+ },
+ {
+ "name": "recursion and loop",
+ "id": "cs_subj_5_topic_13",
+ "slug": "recursion-and-loop",
+ "md_path": "programming-and-data-structure/recursion-and-loop.md",
+ "questions": [
+ "questions/2021-M/10/"
+ ]
+ },
+ {
+ "name": "stack operation",
+ "id": "cs_subj_5_topic_14",
+ "slug": "stack-operation",
+ "md_path": "programming-and-data-structure/stack-operation.md",
+ "questions": [
+ "questions/2021-M/11/"
+ ]
+ },
+ {
+ "name": "sorting algorithm",
+ "id": "cs_subj_5_topic_15",
+ "slug": "sorting-algorithm",
+ "md_path": "programming-and-data-structure/sorting-algorithm.md",
+ "questions": [
+ "questions/2021-M/34/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "database management",
+ "id": "cs_subj_6",
+ "slug": "database-management",
+ "topics": [
+ {
+ "name": "relation schema definition",
+ "id": "cs_subj_6_topic_1",
+ "slug": "relation-schema-definition",
+ "md_path": "database-management/relation-schema-definition.md",
+ "questions": [
+ "questions/2023/6/"
+ ]
+ },
+ {
+ "name": "concurrency control",
+ "id": "cs_subj_6_topic_2",
+ "slug": "concurrency-control",
+ "md_path": "database-management/concurrency-control.md",
+ "questions": [
+ "questions/2022/54/"
+ ]
+ },
+ {
+ "name": "relational data model",
+ "id": "cs_subj_6_topic_3",
+ "slug": "relational-data-model",
+ "md_path": "database-management/relational-data-model.md",
+ "questions": [
+ "questions/2022/51/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "discrete mathematic",
+ "id": "cs_subj_7",
+ "slug": "discrete-mathematic",
+ "topics": [
+ {
+ "name": "propositional and first order logic",
+ "id": "cs_subj_7_topic_1",
+ "slug": "propositional-and-first-order-logic",
+ "md_path": "discrete-mathematic/propositional-and-first-order-logic.md",
+ "questions": [
+ "questions/2021-M/12/",
+ "questions/2021-M/24/",
+ "questions/2021-N/61/"
+ ]
+ },
+ {
+ "name": "combinatoric",
+ "id": "cs_subj_7_topic_2",
+ "slug": "combinatoric",
+ "md_path": "discrete-mathematic/combinatoric.md",
+ "questions": [
+ "questions/2022/57/",
+ "questions/2024-N/10/"
+ ]
+ },
+ {
+ "name": "graph theory",
+ "id": "cs_subj_7_topic_3",
+ "slug": "graph-theory",
+ "md_path": "discrete-mathematic/graph-theory.md",
+ "questions": [
+ "questions/2021-N/63/",
+ "questions/2024-M/34/"
+ ]
+ },
+ {
+ "name": "set",
+ "id": "cs_subj_7_topic_4",
+ "slug": "set",
+ "md_path": "discrete-mathematic/set.md",
+ "questions": [
+ "questions/2021-N/62/"
+ ]
+ },
+ {
+ "name": "functions and relation",
+ "id": "cs_subj_7_topic_5",
+ "slug": "functions-and-relation",
+ "md_path": "discrete-mathematic/functions-and-relation.md",
+ "questions": [
+ "questions/2022/59/"
+ ]
+ },
+ {
+ "name": "graph",
+ "id": "cs_subj_7_topic_6",
+ "slug": "graph",
+ "md_path": "discrete-mathematic/graph.md",
+ "questions": []
+ },
+ {
+ "name": "group",
+ "id": "cs_subj_7_topic_7",
+ "slug": "group",
+ "md_path": "discrete-mathematic/group.md",
+ "questions": [
+ "questions/2022/27/",
+ "questions/2024-N/63/"
+ ]
+ },
+ {
+ "name": "graphs connectivity matching coloring",
+ "id": "cs_subj_7_topic_8",
+ "slug": "graphs-connectivity-matching-coloring",
+ "md_path": "discrete-mathematic/graphs-connectivity-matching-coloring.md",
+ "questions": [
+ "questions/2022/24/",
+ "questions/2022/26/"
+ ]
+ },
+ {
+ "name": "sets relations functions partial orders and lattices monoids group",
+ "id": "cs_subj_7_topic_9",
+ "slug": "sets-relations-functions-partial-orders-and-lattices-monoids-group",
+ "md_path": "discrete-mathematic/sets-relations-functions-partial-orders-and-lattices-monoids-group.md",
+ "questions": [
+ "questions/2022/39/"
+ ]
+ },
+ {
+ "name": "set theory and algebra",
+ "id": "cs_subj_7_topic_10",
+ "slug": "set-theory-and-algebra",
+ "md_path": "discrete-mathematic/set-theory-and-algebra.md",
+ "questions": [
+ "questions/2024-M/32/"
+ ]
+ },
+ {
+ "name": "partial orders and lattice",
+ "id": "cs_subj_7_topic_11",
+ "slug": "partial-orders-and-lattice",
+ "md_path": "discrete-mathematic/partial-orders-and-lattice.md",
+ "questions": [
+ "questions/2024-N/34/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "network concept",
+ "id": "cs_subj_8",
+ "slug": "network-concept",
+ "topics": [
+ {
+ "name": "data link layer protocols routing",
+ "id": "cs_subj_8_topic_1",
+ "slug": "data-link-layer-protocols-routing",
+ "md_path": "network-concept/data-link-layer-protocols-routing.md",
+ "questions": [
+ "questions/2021-M/26/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "computer network",
+ "id": "cs_subj_9",
+ "slug": "computer-network",
+ "topics": [
+ {
+ "name": "network protocols throughput calculation",
+ "id": "cs_subj_9_topic_1",
+ "slug": "network-protocols-throughput-calculation",
+ "md_path": "computer-network/network-protocols-throughput-calculation.md",
+ "questions": [
+ "questions/2021-N/53/"
+ ]
+ },
+ {
+ "name": "transport layer",
+ "id": "cs_subj_9_topic_2",
+ "slug": "transport-layer",
+ "md_path": "computer-network/transport-layer.md",
+ "questions": [
+ "questions/2021-N/52/",
+ "questions/2024-M/16/",
+ "questions/2024-M/29/",
+ "questions/2024-N/54/"
+ ]
+ },
+ {
+ "name": "routing protocols shortest path \ufb02ooding distance vector and link state routing",
+ "id": "cs_subj_9_topic_3",
+ "slug": "routing-protocols-shortest-path-ooding-distance-vector-and-link-state-routing",
+ "md_path": "computer-network/routing-protocols-shortest-path-ooding-distance-vector-and-link-state-routing.md",
+ "questions": [
+ "questions/2021-N/50/"
+ ]
+ },
+ {
+ "name": "routing protocol",
+ "id": "cs_subj_9_topic_4",
+ "slug": "routing-protocol",
+ "md_path": "computer-network/routing-protocol.md",
+ "questions": [
+ "questions/2022/1/",
+ "questions/2024-N/23/"
+ ]
+ },
+ {
+ "name": "tcp ip protocol stack",
+ "id": "cs_subj_9_topic_5",
+ "slug": "tcp-ip-protocol-stack",
+ "md_path": "computer-network/tcp-ip-protocol-stack.md",
+ "questions": [
+ "questions/2022/3/"
+ ]
+ },
+ {
+ "name": "routing subnet mask",
+ "id": "cs_subj_9_topic_6",
+ "slug": "routing-subnet-mask",
+ "md_path": "computer-network/routing-subnet-mask.md",
+ "questions": [
+ "questions/2022/4/"
+ ]
+ },
+ {
+ "name": "basics of packet circuit and virtual circuit switching fragmentation and ip addressing",
+ "id": "cs_subj_9_topic_7",
+ "slug": "basics-of-packet-circuit-and-virtual-circuit-switching-fragmentation-and-ip-addr",
+ "md_path": "computer-network/basics-of-packet-circuit-and-virtual-circuit-switching-fragmentation-and-ip-addr.md",
+ "questions": [
+ "questions/2022/2/"
+ ]
+ },
+ {
+ "name": "network layer",
+ "id": "cs_subj_9_topic_8",
+ "slug": "network-layer",
+ "md_path": "computer-network/network-layer.md",
+ "questions": [
+ "questions/2024-M/65/",
+ "questions/2024-N/28/"
+ ]
+ },
+ {
+ "name": "concepts of layering",
+ "id": "cs_subj_9_topic_9",
+ "slug": "concepts-of-layering",
+ "md_path": "computer-network/concepts-of-layering.md",
+ "questions": [
+ "questions/2024-M/31/",
+ "questions/2024-N/38/"
+ ]
+ },
+ {
+ "name": "transport layer protocol",
+ "id": "cs_subj_9_topic_10",
+ "slug": "transport-layer-protocol",
+ "md_path": "computer-network/transport-layer-protocol.md",
+ "questions": [
+ "questions/2021-M/46/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "database",
+ "id": "cs_subj_10",
+ "slug": "database",
+ "topics": [
+ {
+ "name": "concurrency control recovery mechanism",
+ "id": "cs_subj_10_topic_1",
+ "slug": "concurrency-control-recovery-mechanism",
+ "md_path": "database/concurrency-control-recovery-mechanism.md",
+ "questions": [
+ "questions/2021-N/47/"
+ ]
+ },
+ {
+ "name": "relational model",
+ "id": "cs_subj_10_topic_2",
+ "slug": "relational-model",
+ "md_path": "database/relational-model.md",
+ "questions": [
+ "questions/2021-N/48/",
+ "questions/2021-N/49/"
+ ]
+ },
+ {
+ "name": "relational data model",
+ "id": "cs_subj_10_topic_3",
+ "slug": "relational-data-model",
+ "md_path": "database/relational-data-model.md",
+ "questions": [
+ "questions/2021-N/45/"
+ ]
+ },
+ {
+ "name": "file organization",
+ "id": "cs_subj_10_topic_4",
+ "slug": "file-organization",
+ "md_path": "database/file-organization.md",
+ "questions": [
+ "questions/2021-N/46/"
+ ]
+ },
+ {
+ "name": "relational database management",
+ "id": "cs_subj_10_topic_5",
+ "slug": "relational-database-management",
+ "md_path": "database/relational-database-management.md",
+ "questions": [
+ "questions/2022/53/"
+ ]
+ },
+ {
+ "name": "sql querie",
+ "id": "cs_subj_10_topic_6",
+ "slug": "sql-querie",
+ "md_path": "database/sql-querie.md",
+ "questions": [
+ "questions/2022/55/"
+ ]
+ },
+ {
+ "name": "database design function",
+ "id": "cs_subj_10_topic_7",
+ "slug": "database-design-function",
+ "md_path": "database/database-design-function.md",
+ "questions": [
+ "questions/2024-M/22/"
+ ]
+ },
+ {
+ "name": "relational model relational algebra",
+ "id": "cs_subj_10_topic_8",
+ "slug": "relational-model-relational-algebra",
+ "md_path": "database/relational-model-relational-algebra.md",
+ "questions": [
+ "questions/2024-M/35/"
+ ]
+ },
+ {
+ "name": "relational algebra",
+ "id": "cs_subj_10_topic_9",
+ "slug": "relational-algebra",
+ "md_path": "database/relational-algebra.md",
+ "questions": [
+ "questions/2021-M/8/",
+ "questions/2024-N/45/"
+ ]
+ },
+ {
+ "name": "integrity constraint",
+ "id": "cs_subj_10_topic_10",
+ "slug": "integrity-constraint",
+ "md_path": "database/integrity-constraint.md",
+ "questions": [
+ "questions/2024-N/56/"
+ ]
+ },
+ {
+ "name": "er model",
+ "id": "cs_subj_10_topic_11",
+ "slug": "er-model",
+ "md_path": "database/er-model.md",
+ "questions": [
+ "questions/2024-N/20/"
+ ]
+ },
+ {
+ "name": "transactions and concurrency control",
+ "id": "cs_subj_10_topic_12",
+ "slug": "transactions-and-concurrency-control",
+ "md_path": "database/transactions-and-concurrency-control.md",
+ "questions": [
+ "questions/2024-N/27/"
+ ]
+ },
+ {
+ "name": "file structure",
+ "id": "cs_subj_10_topic_13",
+ "slug": "file-structure",
+ "md_path": "database/file-structure.md",
+ "questions": [
+ "questions/2024-N/26/"
+ ]
+ },
+ {
+ "name": "er model and relational model",
+ "id": "cs_subj_10_topic_14",
+ "slug": "er-model-and-relational-model",
+ "md_path": "database/er-model-and-relational-model.md",
+ "questions": [
+ "questions/2021-M/37/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "digital logic",
+ "id": "cs_subj_11",
+ "slug": "digital-logic",
+ "topics": [
+ {
+ "name": "number representations and computer arithmetic fixed and floating point",
+ "id": "cs_subj_11_topic_1",
+ "slug": "number-representations-and-computer-arithmetic-fixed-and-floating-point",
+ "md_path": "digital-logic/number-representations-and-computer-arithmetic-fixed-and-floating-point.md",
+ "questions": [
+ "questions/2021-N/25/"
+ ]
+ },
+ {
+ "name": "boolean algebra",
+ "id": "cs_subj_11_topic_2",
+ "slug": "boolean-algebra",
+ "md_path": "digital-logic/boolean-algebra.md",
+ "questions": [
+ "questions/2021-M/14/",
+ "questions/2022/30/",
+ "questions/2022/35/",
+ "questions/2024-M/47/",
+ "questions/2024-N/12/",
+ "questions/2024-N/30/",
+ "questions/2024-N/43/",
+ "questions/2024-N/50/"
+ ]
+ },
+ {
+ "name": "error detection",
+ "id": "cs_subj_11_topic_3",
+ "slug": "error-detection",
+ "md_path": "digital-logic/error-detection.md",
+ "questions": [
+ "questions/2021-N/51/"
+ ]
+ },
+ {
+ "name": "number representations and computer arithmetic",
+ "id": "cs_subj_11_topic_4",
+ "slug": "number-representations-and-computer-arithmetic",
+ "md_path": "digital-logic/number-representations-and-computer-arithmetic.md",
+ "questions": [
+ "questions/2021-N/24/",
+ "questions/2022/50/"
+ ]
+ },
+ {
+ "name": "locks and thread",
+ "id": "cs_subj_11_topic_5",
+ "slug": "locks-and-thread",
+ "md_path": "digital-logic/locks-and-thread.md",
+ "questions": [
+ "questions/2021-N/26/"
+ ]
+ },
+ {
+ "name": "combinational circuit",
+ "id": "cs_subj_11_topic_6",
+ "slug": "combinational-circuit",
+ "md_path": "digital-logic/combinational-circuit.md",
+ "questions": [
+ "questions/2022/37/",
+ "questions/2024-M/64/"
+ ]
+ },
+ {
+ "name": "instruction format",
+ "id": "cs_subj_11_topic_7",
+ "slug": "instruction-format",
+ "md_path": "digital-logic/instruction-format.md",
+ "questions": [
+ "questions/2024-N/57/"
+ ]
+ },
+ {
+ "name": "number",
+ "id": "cs_subj_11_topic_8",
+ "slug": "number",
+ "md_path": "digital-logic/number.md",
+ "questions": [
+ "questions/2024-N/49/"
+ ]
+ },
+ {
+ "name": "error detection and correction",
+ "id": "cs_subj_11_topic_9",
+ "slug": "error-detection-and-correction",
+ "md_path": "digital-logic/error-detection-and-correction.md",
+ "questions": [
+ "questions/2021-M/44/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "general aptitude",
+ "id": "cs_subj_12",
+ "slug": "general-aptitude",
+ "topics": [
+ {
+ "name": "numerical ability",
+ "id": "cs_subj_12_topic_1",
+ "slug": "numerical-ability",
+ "md_path": "general-aptitude/numerical-ability.md",
+ "questions": [
+ "questions/2021-N/3/",
+ "questions/2021-N/57/",
+ "questions/2021-N/8/",
+ "questions/2021-N/9/",
+ "questions/2024-N/7/"
+ ]
+ },
+ {
+ "name": "numerical ability numerical computation numerical estimation numerical reasoning and data interpretation",
+ "id": "cs_subj_12_topic_2",
+ "slug": "numerical-ability-numerical-computation-numerical-estimation-numerical-reasoning",
+ "md_path": "general-aptitude/numerical-ability-numerical-computation-numerical-estimation-numerical-reasoning.md",
+ "questions": [
+ "questions/2021-N/58/"
+ ]
+ },
+ {
+ "name": "verbal ability language comprehension vocabulary grammar and reading comprehension",
+ "id": "cs_subj_12_topic_3",
+ "slug": "verbal-ability-language-comprehension-vocabulary-grammar-and-reading-comprehensi",
+ "md_path": "general-aptitude/verbal-ability-language-comprehension-vocabulary-grammar-and-reading-comprehensi.md",
+ "questions": [
+ "questions/2021-N/4/"
+ ]
+ },
+ {
+ "name": "verbal ability",
+ "id": "cs_subj_12_topic_4",
+ "slug": "verbal-ability",
+ "md_path": "general-aptitude/verbal-ability.md",
+ "questions": [
+ "questions/2021-N/6/",
+ "questions/2024-N/1/",
+ "questions/2024-N/6/"
+ ]
+ },
+ {
+ "name": "spatial aptitude",
+ "id": "cs_subj_12_topic_5",
+ "slug": "spatial-aptitude",
+ "md_path": "general-aptitude/spatial-aptitude.md",
+ "questions": [
+ "questions/2022/64/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "spatial aptitude",
+ "id": "cs_subj_13",
+ "slug": "spatial-aptitude",
+ "topics": [
+ {
+ "name": "transformation of shapes translation rotation scaling mirroring assembling grouping",
+ "id": "cs_subj_13_topic_1",
+ "slug": "transformation-of-shapes-translation-rotation-scaling-mirroring-assembling-group",
+ "md_path": "spatial-aptitude/transformation-of-shapes-translation-rotation-scaling-mirroring-assembling-group.md",
+ "questions": [
+ "questions/2021-N/1/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "linear algebra",
+ "id": "cs_subj_14",
+ "slug": "linear-algebra",
+ "topics": [
+ {
+ "name": "vector operation",
+ "id": "cs_subj_14_topic_1",
+ "slug": "vector-operation",
+ "md_path": "linear-algebra/vector-operation.md",
+ "questions": [
+ "questions/2021-N/60/"
+ ]
+ },
+ {
+ "name": "lu decomposition",
+ "id": "cs_subj_14_topic_2",
+ "slug": "lu-decomposition",
+ "md_path": "linear-algebra/lu-decomposition.md",
+ "questions": [
+ "questions/2022/21/"
+ ]
+ },
+ {
+ "name": "matrice",
+ "id": "cs_subj_14_topic_3",
+ "slug": "matrice",
+ "md_path": "linear-algebra/matrice.md",
+ "questions": [
+ "questions/2022/23/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "probability and statistic",
+ "id": "cs_subj_15",
+ "slug": "probability-and-statistic",
+ "topics": [
+ {
+ "name": "random variable",
+ "id": "cs_subj_15_topic_1",
+ "slug": "random-variable",
+ "md_path": "probability-and-statistic/random-variable.md",
+ "questions": [
+ "questions/2021-M/49/",
+ "questions/2021-N/54/"
+ ]
+ },
+ {
+ "name": "probability",
+ "id": "cs_subj_15_topic_2",
+ "slug": "probability",
+ "md_path": "probability-and-statistic/probability.md",
+ "questions": [
+ "questions/2022/61/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "algorithm",
+ "id": "cs_subj_16",
+ "slug": "algorithm",
+ "topics": [
+ {
+ "name": "searching",
+ "id": "cs_subj_16_topic_1",
+ "slug": "searching",
+ "md_path": "algorithm/searching.md",
+ "questions": [
+ "questions/2021-N/15/",
+ "questions/2021-N/20/"
+ ]
+ },
+ {
+ "name": "searching sorting",
+ "id": "cs_subj_16_topic_2",
+ "slug": "searching-sorting",
+ "md_path": "algorithm/searching-sorting.md",
+ "questions": [
+ "questions/2021-N/19/"
+ ]
+ },
+ {
+ "name": "recurrence relation",
+ "id": "cs_subj_16_topic_3",
+ "slug": "recurrence-relation",
+ "md_path": "algorithm/recurrence-relation.md",
+ "questions": [
+ "questions/2021-M/29/",
+ "questions/2022/31/"
+ ]
+ },
+ {
+ "name": "complexity analysis",
+ "id": "cs_subj_16_topic_4",
+ "slug": "complexity-analysis",
+ "md_path": "algorithm/complexity-analysis.md",
+ "questions": [
+ "questions/2024-M/17/"
+ ]
+ },
+ {
+ "name": "asymptotic worst case time and space complexity",
+ "id": "cs_subj_16_topic_5",
+ "slug": "asymptotic-worst-case-time-and-space-complexity",
+ "md_path": "algorithm/asymptotic-worst-case-time-and-space-complexity.md",
+ "questions": [
+ "questions/2024-M/42/"
+ ]
+ },
+ {
+ "name": "asymptotic worst case time complexity",
+ "id": "cs_subj_16_topic_6",
+ "slug": "asymptotic-worst-case-time-complexity",
+ "md_path": "algorithm/asymptotic-worst-case-time-complexity.md",
+ "questions": [
+ "questions/2024-N/15/"
+ ]
+ },
+ {
+ "name": "searching and sorting",
+ "id": "cs_subj_16_topic_7",
+ "slug": "searching-and-sorting",
+ "md_path": "algorithm/searching-and-sorting.md",
+ "questions": [
+ "questions/2021-M/45/"
+ ]
+ },
+ {
+ "name": "time complexity",
+ "id": "cs_subj_16_topic_8",
+ "slug": "time-complexity",
+ "md_path": "algorithm/time-complexity.md",
+ "questions": [
+ "questions/2021-M/41/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "geometry 3d object",
+ "id": "cs_subj_17",
+ "slug": "geometry-3d-object",
+ "topics": [
+ {
+ "name": "angles in 3d object",
+ "id": "cs_subj_17_topic_1",
+ "slug": "angles-in-3d-object",
+ "md_path": "geometry-3d-object/angles-in-3d-object.md",
+ "questions": [
+ "questions/2021-N/2/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "combinatoric",
+ "id": "cs_subj_18",
+ "slug": "combinatoric",
+ "topics": [
+ {
+ "name": "counting and arrangement",
+ "id": "cs_subj_18_topic_1",
+ "slug": "counting-and-arrangement",
+ "md_path": "combinatoric/counting-and-arrangement.md",
+ "questions": [
+ "questions/2022/25/",
+ "questions/2022/29/"
+ ]
+ },
+ {
+ "name": "recurrence relation",
+ "id": "cs_subj_18_topic_2",
+ "slug": "recurrence-relation",
+ "md_path": "combinatoric/recurrence-relation.md",
+ "questions": [
+ "questions/2021-M/6/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "data structure",
+ "id": "cs_subj_19",
+ "slug": "data-structure",
+ "topics": [
+ {
+ "name": "linked list",
+ "id": "cs_subj_19_topic_1",
+ "slug": "linked-list",
+ "md_path": "data-structure/linked-list.md",
+ "questions": [
+ "questions/2022/40/"
+ ]
+ },
+ {
+ "name": "graph",
+ "id": "cs_subj_19_topic_2",
+ "slug": "graph",
+ "md_path": "data-structure/graph.md",
+ "questions": [
+ "questions/2024-M/45/",
+ "questions/2024-M/51/",
+ "questions/2024-M/60/"
+ ]
+ },
+ {
+ "name": "tree",
+ "id": "cs_subj_19_topic_3",
+ "slug": "tree",
+ "md_path": "data-structure/tree.md",
+ "questions": [
+ "questions/2024-M/21/"
+ ]
+ },
+ {
+ "name": "array",
+ "id": "cs_subj_19_topic_4",
+ "slug": "array",
+ "md_path": "data-structure/array.md",
+ "questions": [
+ "questions/2024-M/41/"
+ ]
+ },
+ {
+ "name": "graph theory",
+ "id": "cs_subj_19_topic_5",
+ "slug": "graph-theory",
+ "md_path": "data-structure/graph-theory.md",
+ "questions": [
+ "questions/2024-N/51/",
+ "questions/2024-N/59/",
+ "questions/2024-N/60/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "operating",
+ "id": "cs_subj_20",
+ "slug": "operating",
+ "topics": [
+ {
+ "name": "memory management",
+ "id": "cs_subj_20_topic_1",
+ "slug": "memory-management",
+ "md_path": "operating/memory-management.md",
+ "questions": [
+ "questions/2022/44/"
+ ]
+ },
+ {
+ "name": "i o management",
+ "id": "cs_subj_20_topic_2",
+ "slug": "i-o-management",
+ "md_path": "operating/i-o-management.md",
+ "questions": [
+ "questions/2022/13/"
+ ]
+ },
+ {
+ "name": "scheduling algorithm",
+ "id": "cs_subj_20_topic_3",
+ "slug": "scheduling-algorithm",
+ "md_path": "operating/scheduling-algorithm.md",
+ "questions": [
+ "questions/2022/43/"
+ ]
+ },
+ {
+ "name": "processe",
+ "id": "cs_subj_20_topic_4",
+ "slug": "processe",
+ "md_path": "operating/processe.md",
+ "questions": [
+ "questions/2022/42/"
+ ]
+ },
+ {
+ "name": "process management i",
+ "id": "cs_subj_20_topic_5",
+ "slug": "process-management-i",
+ "md_path": "operating/process-management-i.md",
+ "questions": [
+ "questions/2024-M/40/"
+ ]
+ },
+ {
+ "name": "process management ii",
+ "id": "cs_subj_20_topic_6",
+ "slug": "process-management-ii",
+ "md_path": "operating/process-management-ii.md",
+ "questions": [
+ "questions/2024-M/15/",
+ "questions/2024-M/24/",
+ "questions/2024-M/57/"
+ ]
+ },
+ {
+ "name": "file",
+ "id": "cs_subj_20_topic_7",
+ "slug": "file",
+ "md_path": "operating/file.md",
+ "questions": [
+ "questions/2024-M/54/"
+ ]
+ },
+ {
+ "name": "memory management and virtual memory",
+ "id": "cs_subj_20_topic_8",
+ "slug": "memory-management-and-virtual-memory",
+ "md_path": "operating/memory-management-and-virtual-memory.md",
+ "questions": [
+ "questions/2024-M/62/",
+ "questions/2024-N/24/",
+ "questions/2024-N/64/"
+ ]
+ },
+ {
+ "name": "concurrency and synchronization",
+ "id": "cs_subj_20_topic_9",
+ "slug": "concurrency-and-synchronization",
+ "md_path": "operating/concurrency-and-synchronization.md",
+ "questions": [
+ "questions/2024-N/46/"
+ ]
+ },
+ {
+ "name": "scheduling deadlock cpu and i o scheduling",
+ "id": "cs_subj_20_topic_10",
+ "slug": "scheduling-deadlock-cpu-and-i-o-scheduling",
+ "md_path": "operating/scheduling-deadlock-cpu-and-i-o-scheduling.md",
+ "questions": [
+ "questions/2024-N/37/"
+ ]
+ },
+ {
+ "name": "scheduling",
+ "id": "cs_subj_20_topic_11",
+ "slug": "scheduling",
+ "md_path": "operating/scheduling.md",
+ "questions": [
+ "questions/2021-M/9/"
+ ]
+ },
+ {
+ "name": "processes and thread",
+ "id": "cs_subj_20_topic_12",
+ "slug": "processes-and-thread",
+ "md_path": "operating/processes-and-thread.md",
+ "questions": [
+ "questions/2021-M/13/"
+ ]
+ },
+ {
+ "name": "system call",
+ "id": "cs_subj_20_topic_13",
+ "slug": "system-call",
+ "md_path": "operating/system-call.md",
+ "questions": [
+ "questions/2021-M/4/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "calculus",
+ "id": "cs_subj_21",
+ "slug": "calculus",
+ "topics": [
+ {
+ "name": "limit",
+ "id": "cs_subj_21_topic_1",
+ "slug": "limit",
+ "md_path": "calculus/limit.md",
+ "questions": [
+ "questions/2022/20/"
+ ]
+ },
+ {
+ "name": "algebraic manipulation",
+ "id": "cs_subj_21_topic_2",
+ "slug": "algebraic-manipulation",
+ "md_path": "calculus/algebraic-manipulation.md",
+ "questions": [
+ "questions/2022/58/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "engineering mathematic",
+ "id": "cs_subj_22",
+ "slug": "engineering-mathematic",
+ "topics": [
+ {
+ "name": "combinatoric",
+ "id": "cs_subj_22_topic_1",
+ "slug": "combinatoric",
+ "md_path": "engineering-mathematic/combinatoric.md",
+ "questions": [
+ "questions/2024-M/7/"
+ ]
+ },
+ {
+ "name": "probability",
+ "id": "cs_subj_22_topic_2",
+ "slug": "probability",
+ "md_path": "engineering-mathematic/probability.md",
+ "questions": [
+ "questions/2024-M/14/",
+ "questions/2024-M/63/",
+ "questions/2024-M/8/"
+ ]
+ },
+ {
+ "name": "calculus",
+ "id": "cs_subj_22_topic_3",
+ "slug": "calculus",
+ "md_path": "engineering-mathematic/calculus.md",
+ "questions": [
+ "questions/2024-N/16/",
+ "questions/2024-N/4/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "database design functional",
+ "id": "cs_subj_23",
+ "slug": "database-design-functional",
+ "topics": [
+ {
+ "name": "transactions and concurrency control",
+ "id": "cs_subj_23_topic_1",
+ "slug": "transactions-and-concurrency-control",
+ "md_path": "database-design-functional/transactions-and-concurrency-control.md",
+ "questions": [
+ "questions/2024-M/46/"
+ ]
+ },
+ {
+ "name": "er model",
+ "id": "cs_subj_23_topic_2",
+ "slug": "er-model",
+ "md_path": "database-design-functional/er-model.md",
+ "questions": [
+ "questions/2024-M/20/"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "engineering mathematics probability",
+ "id": "cs_subj_24",
+ "slug": "engineering-mathematics-probability",
+ "topics": [
+ {
+ "name": "random variable",
+ "id": "cs_subj_24_topic_1",
+ "slug": "random-variable",
+ "md_path": "engineering-mathematics-probability/random-variable.md",
+ "questions": [
+ "questions/2024-N/44/"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/boolean-function.md b/frontend/public/assets/gate/cs/theory-of-computation/boolean-function.md
new file mode 100644
index 0000000..c1eca9d
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/boolean-function.md
@@ -0,0 +1,86 @@
+**Boolean Functions**
+======================
+
+**Introduction**
+---------------
+
+A Boolean function f(w, x, y, z) is a mapping from a set of input bits to an output bit. In this topic, we focus on the representation and minimization of Boolean functions using sum of products (SOP) expressions.
+
+**Core Concepts**
+-----------------
+
+### 1. Sum of Products (SOP) Expression
+
+A SOP expression represents a Boolean function as a disjunction of minterms, where each minterm is a conjunction of literals. A literal is either a variable or its complement.
+
+### 2. Minterm and Maxterm
+
+* A minterm is the product of all variables in the function, with each variable being either set to 1 or 0.
+* A maxterm is the sum of all possible combinations of variables that are not present in the minterm.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### 1. Karnaugh Map (K-Map) Minimization
+
+Given a SOP expression, we can use a K-map to find its minimal form by grouping adjacent 1s and counting the number of groups.
+
+```mermaid
+graph LR
+A[Start] --> B[K-Map]
+B --> C[Group Adjacent 1s]
+C --> D[Count Number of Groups]
+D --> E[Minimal SOP Expression]
+```
+
+**Problem Solving Patterns**
+---------------------------
+
+### 1. Identifying the Number of Min Terms
+
+* Count the number of variables in the function.
+* Calculate 2^n, where n is the number of variables.
+
+### 2. Analyzing K-Map Representation
+
+* Look for adjacent 1s and group them.
+* Count the number of groups to find the minimal SOP expression.
+
+**Examples with Solutions**
+---------------------------
+
+### 1. Example: Minimal SOP Expression
+
+Suppose we have a Boolean function f(w, x, y) = w'x'y + wx'y'. To find its minimal SOP expression using K-map minimization:
+
+```mermaid
+graph LR
+A[Start] --> B[K-Map]
+B --> C[w'x'y as top-left 1]
+C --> D[wx'y as bottom-right 1]
+D --> E[Group Adjacent 1s: w'x', y + wx']
+E --> F[Count Number of Groups: 2]
+```
+
+The minimal SOP expression is f(w, x, y) = w'x' + wy.
+
+**Common Pitfalls**
+------------------
+
+* Missed literals in the minterm or maxterm representation.
+* Incorrect counting of groups in K-map minimization.
+
+**Quick Summary**
+-----------------
+
+* Boolean functions can be represented using SOP expressions.
+* Minterms and maxterms are essential concepts for understanding SOP expressions.
+* K-map minimization is a technique to find the minimal SOP expression.
+
+### Recommended Reading
+
+* For more information on Boolean functions, see [1].
+* For detailed explanations of sum of products expressions, consult [2].
+
+[1] https://en.wikipedia.org/wiki/Boolean_function
+[2] http://www.eecs.berkeley.edu/~cs70/sp2010/l10.pdf
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/context-free-grammar.md b/frontend/public/assets/gate/cs/theory-of-computation/context-free-grammar.md
new file mode 100644
index 0000000..9461b5a
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/context-free-grammar.md
@@ -0,0 +1,128 @@
+**Context-Free Grammar**
+========================
+
+**Introduction**
+---------------
+
+A context-free grammar (CFG) is a formal grammar that generates a language through a set of production rules. It is called "context-free" because each non-terminal can be replaced by any possible string of terminals, without considering the surrounding context.
+
+**Core Concepts**
+-----------------
+
+### Definition 1: Context-Free Grammar
+
+A context-free grammar $G = (V, Σ, P, S)$ consists of:
+
+* A set of **non-terminals** $V$.
+* A set of **terminals** $\Sigma$.
+* A set of **production rules** $P$, where each rule is of the form $A \rightarrow \alpha$, with $A$ a non-terminal and $\alpha$ a string of terminals and/or non-terminals.
+* A **start symbol** $S$, which is a designated non-terminal.
+
+### Definition 2: Derivation
+
+A derivation in a context-free grammar $G$ is a sequence of production rules applied to the start symbol. For example, if we have the following production rules:
+
+$$
+\begin{align*}
+S &\rightarrow AB \\
+A &\rightarrow a \\
+B &\rightarrow b
+\end{align*}
+$$
+
+Then one possible derivation is $S \Rightarrow AB \Rightarrow ab$.
+
+### Definition 3: Language Generated by a Context-Free Grammar
+
+The **language generated** by a context-free grammar $G$ is the set of all strings that can be derived from the start symbol using the production rules in $P$. We denote this language as $L(G)$.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Theorem 1: Pumping Lemma for Context-Free Languages
+
+Let $L$ be a context-free language. Then there exists an integer $p \geq 1$ such that every string $w \in L$ with length at least $p$ can be written as $w = xyz$, where:
+
+* $x, y, z$ are non-empty strings.
+* $|xy| \leq p$.
+* For all $i \geq 0$, $xy^iz \in L$.
+
+### Corollary 1: Pumping Lemma for Context-Free Languages (Simple Form)
+
+If a string $w \in L(G)$ with length at least $p$ can be written as $w = xyz$, where:
+
+* $x, y, z$ are non-empty strings.
+* $|xy| \leq p$.
+
+Then for all $i \geq 0$, $xy^iz \in L(G)$.
+
+**Problem Solving Patterns**
+-----------------------------
+
+### Pattern 1: Finding the Language Generated by a Context-Free Grammar
+
+To find the language generated by a context-free grammar, we need to identify the production rules and apply them recursively to the start symbol. We can use the following steps:
+
+1. Identify the production rules.
+2. Apply the production rules to the start symbol to derive strings.
+
+### Pattern 2: Using the Pumping Lemma for Context-Free Languages
+
+To prove that a language is not context-free, we can use the pumping lemma. The basic idea is to show that there exists a string in the language with length at least $p$ that cannot be written in the required form.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: Finding the Language Generated by a Context-Free Grammar
+
+Consider the following context-free grammar:
+
+$$
+\begin{align*}
+S &\rightarrow AB \\
+A &\rightarrow aA \mid b \\
+B &\rightarrow cB \mid d
+\end{align*}
+$$
+
+Find the language generated by this grammar.
+
+Solution:
+
+1. Identify the production rules.
+2. Apply the production rules to the start symbol $S$:
+ $$S \Rightarrow AB \Rightarrow aAbcBd \Rightarrow abcd$$
+
+The language generated by this grammar is $\{abcd\}$.
+
+### Example 2: Using the Pumping Lemma for Context-Free Languages
+
+Consider the following context-free language:
+
+$$L = \{a^n b^n c^n d^n \mid n \geq 1\}$$
+
+Show that $L$ is not context-free using the pumping lemma.
+
+Solution:
+
+1. Assume that $L$ is context-free.
+2. Apply the pumping lemma to get a string $w \in L$ with length at least $p$, where:
+ * $x, y, z$ are non-empty strings.
+ * $|xy| \leq p$.
+3. Write $w = xyz$ and apply the production rules to derive a new string $w' = xy^iz$.
+4. Show that $w' \notin L$, which contradicts the assumption that $L$ is context-free.
+
+**Common Pitfalls**
+-------------------
+
+* **Incorrect application of the pumping lemma**: Make sure to follow the correct format and steps when applying the pumping lemma.
+* **Inadequate analysis of the production rules**: Carefully examine the production rules and their implications on the language generated by the grammar.
+
+**Quick Summary**
+----------------
+
+* Context-free grammar: a formal grammar that generates a language through a set of production rules.
+* Language generated by a context-free grammar: the set of all strings that can be derived from the start symbol using the production rules in $P$.
+* Pumping lemma for context-free languages: a tool to prove that a language is not context-free.
+
+Note: This theory note aims to provide an introduction to context-free grammars and their properties, as well as techniques to analyze them.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/context-free-grammars-and-push-down-automata.md b/frontend/public/assets/gate/cs/theory-of-computation/context-free-grammars-and-push-down-automata.md
new file mode 100644
index 0000000..9881f84
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/context-free-grammars-and-push-down-automata.md
@@ -0,0 +1,88 @@
+**Context Free Grammars and Push Down Automata**
+=====================================================
+
+### Introduction
+---------------
+
+Context-free grammars (CFGs) and push-down automata (PDAs) are fundamental concepts in the Theory of Computation. CFGs provide a formal way to describe languages using production rules, while PDAs use a stack to recognize languages.
+
+### Core Concepts
+------------------
+
+#### Context-Free Grammars
+
+* A **context-free grammar** $G = \langle V_T, V_N, P, S\rangle$ consists of:
+ * $V_T$: The terminal alphabet (non-terminals).
+ * $V_N$: The non-terminal alphabet.
+ * $P$: The set of production rules.
+ * $S$: The start symbol.
+* **Derivations**: A derivation is a sequence of productions applied to the input string.
+* **Languages recognized by CFGs**: Context-free languages are recursively enumerable.
+
+#### Push-Down Automata
+
+* A **push-down automaton** $M = \langle Q, \Sigma, \Gamma, q_0, F\rangle$ consists of:
+ * $Q$: The set of states.
+ * $\Sigma$: The input alphabet.
+ * $\Gamma$: The stack alphabet.
+ * $q_0$: The start state.
+ * $F$: The accepting states.
+* **Transition function**: A transition from state $p$ to state $q$ on input symbol $a$, with the current top stack symbol $X$, and popping $k$ symbols, pushing $m$ symbols: $\delta(p,a,X,k,m) = (q,Y)$.
+
+### Key Formulas/Theorems
+-------------------------
+
+* **Chomsky Normal Form**: A CFG is in Chomsky Normal Form if each production rule has one of the following forms:
+ * $A \rightarrow BC$
+ * $A \rightarrow a$
+
+### Problem Solving Patterns
+----------------------------
+
+#### Analyzing Push-Down Automata
+
+* To analyze the behavior of a PDA, identify the transition function and stack operations.
+* Use induction to prove that certain strings are accepted.
+
+### Examples with Solutions
+---------------------------
+
+#### Example 1: Push Down Automaton Analysis
+
+Suppose we have a PDA $M$ with input alphabet $\Sigma = \{a,b\}$, stack alphabet $\Gamma = \{\#,a,b\}$, start state $q_0$, and accepting states $\{F\}$. The transition function is given by:
+
+$$
+\delta(q,a,\#,1,2) = (q,a,a)
+$$
+
+We want to show that the string "aa" is accepted by $M$.
+
+**Solution**: By induction on the length of the input string.
+
+* **Base case**: For the empty string $\epsilon$, we have:
+
+ \begin{align*}
+ M \Rightarrow^{\delta(q_0,\#,1,2)} q_0
+ \end{align*}
+
+ * **Step 1**: Push $\#$: $M \Rightarrow^{(q_0,a)} q_0$.
+ * **Step 2**: Pop $\#$: $M \Rightarrow^{(q_0,\#,a)} q_0$.
+
+* **Inductive step**: Suppose the string "aa" is accepted by $M$, and consider the next input symbol. By applying the transition function, we can show that the resulting string is also accepted.
+
+### Common Pitfalls
+-------------------
+
+* Misunderstanding of CFG derivations.
+* Incorrect analysis of PDA behavior.
+* Failure to use induction for proofs.
+
+### Quick Summary
+---------------
+
+* Context-free grammars and push-down automata are fundamental concepts in the Theory of Computation.
+* CFGs provide a formal way to describe languages using production rules, while PDAs use a stack to recognize languages.
+* Key formulas/theorems include Chomsky Normal Form for CFGs.
+* Problem-solving patterns involve analyzing PDA behavior and using induction for proofs.
+
+This theory note provides an in-depth exploration of context-free grammars and push-down automata, covering core concepts, key formulas/theorems, problem-solving patterns, examples with solutions, common pitfalls, and a quick summary.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/decidability.md b/frontend/public/assets/gate/cs/theory-of-computation/decidability.md
new file mode 100644
index 0000000..474b7d6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/decidability.md
@@ -0,0 +1,96 @@
+# Decidability
+====================================
+
+## Introduction
+---------------
+
+Decidability is a fundamental concept in the Theory of Computation, dealing with the ability to determine whether a given problem has a solution or not. In other words, it's about determining whether a decision can be made or if it's impossible.
+
+## Core Concepts
+-----------------
+
+### Turing Machines (TMs)
+A TM is an abstract machine that can read and write symbols on an infinite tape divided into cells, each containing a symbol from the alphabet. The TM has a finite control unit that moves along the tape, reading and writing symbols according to a set of rules.
+
+**TM Components**
+
+* Tape: Infinite sequence of cells, each containing a symbol.
+* Head: Moves along the tape, reading and writing symbols.
+* Finite Control Unit (FCU): Makes decisions based on current state and input.
+
+### Decidable Problems
+A problem is decidable if there exists a TM that can solve it in finite time. This means the TM will eventually halt with either an "accept" or "reject" decision.
+
+**Decidability Example**
+
+* Given a string, decide whether it's a palindrome (reads the same forwards and backwards).
+ + A decider TM can solve this problem by comparing characters from both ends of the string, moving towards the center. If all pairs match, it accepts; otherwise, it rejects.
+
+## Key Formulas/Theorems
+---------------------------
+
+### Turing Machine Hierarchy
+
+$ P \subseteq NP \subseteq EXPTIME \subseteq EXPSPACE \subseteq PSPACE $
+
+* $P$: Polynomial Time
+* $NP$: Nondeterministic Polynomial Time
+* $EXPTIME$: Exponential Time
+* $EXPSPACE$: Exponential Space
+* $PSPACE$: Polynomial Space
+
+## Problem Solving Patterns
+---------------------------
+
+### Determining Undecidability
+To prove a problem is undecidable, we need to show that there's no TM that can solve it in finite time. One way to do this is by reducing an already known undecidable problem to the given one.
+
+**Example Reduction**
+
+* Suppose we want to prove that deciding whether a string is a palindrome (given above) is undecidable.
+ + We reduce the Halting Problem (undecidable) to this problem: given a TM $M$ and input $w$, if $M$ halts on $w$, then $w$ should be a palindrome. Otherwise, it's not.
+ - If we could decide palindromes, we could solve the Halting Problem, which is impossible.
+
+## Examples with Solutions
+---------------------------
+
+### Q1: Undecidability
+
+* Given a TM M, decide if M accepts all strings.
+ + **Undecidable**: This problem is equivalent to the Halting Problem. If we had an algorithm to determine whether $M$ accepts all strings, we could solve the Halting Problem by giving it any TM and input, asking if $M$ halts on that input.
+* Given a TM M, decide if M takes more than 1073 steps on every string.
+ + **Decidable**: We can construct a TM that simulates $M$'s execution for up to 1074 steps. If it finishes within the limit, it accepts; otherwise, it rejects.
+* Given two TMs 1M and 2M, decide if their language equivalence is the same (L(M) = L(M')).
+ + **Undecidable**: This problem reduces to the Halting Problem. We can construct a TM that runs both $M$'s in parallel and accepts if they produce the same output for all inputs.
+* Given a TM M, decide if its language is regular (L(M) = regular language).
+ + **Undecidable**: This problem reduces to the Post Correspondence Problem (PCP), which is undecidable. We can construct a TM that produces instances of PCP based on $M$'s output.
+
+## Common Pitfalls
+------------------
+
+* Confusing decidability with solvability: just because a problem is decidable doesn't mean it's easy to solve; some problems may be computationally infeasible.
+* Failing to reduce undecidability properly: when reducing an already known undecidable problem, make sure the reduction preserves all essential properties.
+
+## Quick Summary
+-----------------
+
+| **Concept** | **Description** |
+| --- | --- |
+| Decidability | Ability to determine whether a decision can be made or if it's impossible. |
+| Turing Machines (TMs) | Abstract machines that read and write symbols on an infinite tape, solving problems by making decisions based on current state and input. |
+| Undecidable Problems | Problems for which no TM exists to solve them in finite time; usually proved undecidable by reducing a known problem. |
+
+### Mermaid Diagram
+
+```mermaid
+graph LR
+ A[Decidability] --> B[Turing Machines]
+ B --> C[Undecidable Problems]
+ style C fill:#f9f,stroke:#333,stroke-width:2px;
+```
+
+### References
+
+* For further reading on decidability and Turing machines, refer to the following sources:
+ * "Computational Complexity: A Modern Approach" by Sanjeev Arora and Boaz Barak
+ * "Introduction to Automata Theory, Languages, and Computation" by John Hopcroft, Rajeev Motwani, and Jeffrey Ullman
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/finite-automata.md b/frontend/public/assets/gate/cs/theory-of-computation/finite-automata.md
new file mode 100644
index 0000000..81c221c
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/finite-automata.md
@@ -0,0 +1,122 @@
+**Finite Automata**
+====================
+
+**Introduction**
+---------------
+
+A finite automaton (FA) is a theoretical model of computation that consists of a set of states, transitions between those states, and an initial state. It is a simple computational device that can be used to recognize patterns in strings. The study of finite automata is a fundamental aspect of the theory of computation.
+
+**Core Concepts**
+-----------------
+
+### 1. Definition of Finite Automaton
+
+A finite automaton (FA) is defined as:
+
+* A set of states, Q
+* An input alphabet, Σ
+* A transition function, δ: Q × Σ → Q
+* An initial state, q0 ∈ Q
+* A set of accepting states, F ⊆ Q
+
+The FA operates on strings of symbols from the input alphabet. The current state of the FA is updated based on the next symbol in the string.
+
+### 2. Types of Finite Automata
+
+There are two types of finite automata:
+
+* **Deterministic Finite Automaton (DFA)**: A DFA has a unique transition for each state and input symbol.
+* **Nondeterministic Finite Automaton (NFA)**: An NFA may have multiple transitions from a single state for the same input symbol.
+
+### 3. Recognizable Languages
+
+A language L is recognizable by an FA if there exists an FA that accepts all strings in L.
+
+**Key Formulas/Theorems**
+-------------------------
+
+* The Pumping Lemma for Regular Languages:
+ If L is a regular language, then there exist integers p ≥ 1 and q ≥ 0 such that every string w ∈ L with |w| ≥ p can be written as w = xyz, where |xy| ≤ p and |y| ≥ 1, and xy^iz ∈ L for all i ≥ 0.
+
+* The Myhill-Nerode Theorem:
+ Two DFAs are equivalent if and only if their equivalence relations coincide.
+
+**Problem Solving Patterns**
+---------------------------
+
+### 1. Constructing Regular Expressions
+
+To solve problems involving regular expressions, we need to:
+
+* Identify the pattern in the language
+* Use the Kleene closure (repeated application of union)
+* Apply the catenation rule (concatenation of strings)
+
+Example: Construct a regular expression for the language {a^nb^n | n ≥ 0}
+
+Solution:
+Using the catenation rule, we can write:
+(a ^ n b ^ n) ^{*}
+However, this does not include the empty string. To fix this, we add an additional term for the empty string:
+( a ^ n b ^ n ) ^{*} ∪ ε
+
+### 2. Solving Problems with NFAs and DFAs
+
+To solve problems involving NFAs and DFAs, we need to:
+
+* Draw the NFA/ DFA diagram
+* Identify the accepting states
+* Apply the pumping lemma or other relevant theorems
+
+Example: Given an NFA for a language L, find a regular expression for L.
+
+Solution:
+Draw the NFA diagram. Identify the accepting states. Apply the pumping lemma to show that the language is regular.
+
+**Examples with Solutions**
+---------------------------
+
+### 1. Example 1:
+
+Find a regular expression equivalent to the DFA given below:
+
+```
+ q0
+ ↓
+ q1 → q2 → ...
+ ↓
+ qn
+```
+
+Solution:
+We can write the regular expression as:
+(0 ^{*} (10 ^{*} ) ^{*} ) ^{*}
+
+### 2. Example 2:
+
+Let {0, 1}^* be an arbitrary regular language accepted by a minimal DFA with k states. Which one of the following languages must necessarily be accepted by a minimal DFA with k states?
+
+(A) L ∩ L^(-1)
+(B) {01}L
+(C) {0, 1}^* \ L
+(D) {01}L^(-1)
+
+Solution:
+The correct answer is (C). We can prove this by showing that the complement of a regular language is also regular.
+
+**Common Pitfalls**
+------------------
+
+* Failing to identify the pattern in the language
+* Not applying the relevant theorems or lemmas
+* Not using the Kleene closure and catenation rules correctly
+
+**Quick Summary**
+-----------------
+
+* Finite automata are simple computational devices that can be used to recognize patterns in strings.
+* There are two types of finite automata: deterministic and nondeterministic.
+* Recognizable languages are those for which there exists an FA that accepts all strings in the language.
+* The pumping lemma and Myhill-Nerode theorem are key results in the theory of computation related to regular languages.
+
+Note: This is a basic outline, and you can add more details and examples as per your requirement.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/graph-propertie.md b/frontend/public/assets/gate/cs/theory-of-computation/graph-propertie.md
new file mode 100644
index 0000000..bb27b7f
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/graph-propertie.md
@@ -0,0 +1,86 @@
+**Graph Properties**
+======================
+
+### Introduction
+
+Graphs are fundamental data structures used to represent relationships between objects. In the context of computer science, graph properties are essential for understanding and analyzing various algorithms and problems. This note covers key concepts related to graph properties, including definitions, types of edges, traversal methods, and other relevant information.
+
+### Core Concepts
+
+#### Directed Graphs
+
+A directed graph is a type of graph where edges have direction. Each edge has a starting vertex (source) and an ending vertex (target). In the context of the source question, we are dealing with directed graphs.
+
+#### Types of Edges
+
+In a directed graph, edges can be classified into several types:
+
+* **Back Edge**: An edge that points from a descendant node to one of its ancestors.
+* **Forward Edge**: An edge that points from an ancestor node to one of its descendants.
+* **Cross Edge**: An edge that connects two nodes at different levels in the graph.
+
+#### Graph Traversal
+
+Graph traversal refers to the process of visiting each vertex and edge in a graph. There are several methods for traversing graphs, including:
+
+* **Depth-First Search (DFS)**: A method where we explore as far as possible along each branch before backtracking.
+* **Breadth-First Search (BFS)**: A method where we visit all the nodes at a given depth level before moving on to the next depth level.
+
+### Key Formulas/Theorems
+
+No specific formulas or theorems are mentioned in this note as they are not directly applicable to graph properties. However, understanding concepts like adjacency matrices and incidence matrices can be helpful when dealing with graphs.
+
+### Problem Solving Patterns
+
+When approaching questions related to graph properties, consider the following strategies:
+
+* Identify the type of graph (directed or undirected).
+* Understand the different types of edges present in the graph.
+* Analyze the given traversal method and its implications on the graph structure.
+* Consider whether the graph has strongly connected components.
+
+### Examples with Solutions
+
+**Example 1:**
+
+Suppose we have a directed graph with vertices A, B, C, D, E, and F. The edges are as follows:
+
+* A -> B
+* B -> C
+* C -> D
+* D -> E
+* E -> F
+
+If we perform a depth-first traversal starting from vertex A, which of the following is true?
+
+**Solution:**
+
+In this case, since all edges point in one direction (from parent to child), there are no back edges. However, if we add an edge B -> A, then B -> A would be considered a back edge.
+
+### Common Pitfalls
+
+Students often miss the fact that directed graphs have different types of edges and that traversal methods like DFS and BFS affect how these edges are classified.
+
+**Quick Summary**
+
+* Directed graphs have edges with direction.
+* There are three main types of edges: back edges, forward edges, and cross edges.
+* Graph traversal methods can significantly impact the classification of edges.
+
+### References
+
+For further reading on graph properties and related topics, consider the following resources:
+
+* **Graph Theory** by Harary (1972)
+* **Introduction to Algorithms** by Cormen et al. (2009)
+
+Note that this is not an exhaustive list, but it provides a starting point for exploring more advanced concepts.
+
+### Online Resources
+
+For visualizing graph structures and traversals, consider using tools like:
+
+* Gephi
+* Graphviz
+
+These resources can aid in understanding complex graph properties and their relationships.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/monoids-group.md b/frontend/public/assets/gate/cs/theory-of-computation/monoids-group.md
new file mode 100644
index 0000000..2b847b6
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/monoids-group.md
@@ -0,0 +1,64 @@
+**Monoids and Groups**
+======================
+
+### Introduction
+
+In abstract algebra, a monoid is an algebraic structure consisting of a set together with an associative binary operation. A group is a special type of monoid where every element has an inverse. Understanding monoids and groups is crucial in computer science, particularly in the theory of computation.
+
+### Core Concepts
+
+#### Monoids
+
+A **monoid** $(M, \cdot)$ consists of a set $M$ together with a binary operation $\cdot: M \times M \to M$, satisfying two properties:
+
+1. **Associativity**: For all $a, b, c \in M$, $(a \cdot b) \cdot c = a \cdot (b \cdot c)$.
+2. **Identity Element**: There exists an element $e \in M$ such that for all $a \in M$, $a \cdot e = e \cdot a = a$.
+
+#### Groups
+
+A **group** $(G, \cdot)$ is a monoid where every element has an inverse. Specifically:
+
+1. For each $a \in G$, there exists an element $a^{-1} \in G$ such that $a \cdot a^{-1} = a^{-1} \cdot a = e$, where $e$ is the identity element.
+2. The operation $\cdot: G \times G \to G$ satisfies associativity.
+
+### Key Formulas/Theorems
+
+* **Lagrange's Theorem**: For any finite group $(G, \cdot)$ and its subgroup $(H, \cdot)$, if $|G:H|$ denotes the index of $H$ in $G$, then $|G| = |H| \times |G:H|$.
+ \[|G| = |H| \times |G:H|\]
+
+* **Cayley's Theorem**: Every finite group $(G, \cdot)$ is isomorphic to a permutation group.
+
+### Problem Solving Patterns
+
+1. **Determine the Order of Elements**: If $g \in G$ has order $n$, then for any integer $k$, if $\gcd(k,n) = 1$, then $g^k \neq e$. However, if $\gcd(k,n) > 1$, then $g^k = e$.
+2. **Use Lagrange's Theorem**: If a subgroup $(H, \cdot)$ of $(G, \cdot)$ has index $|G:H| = k$, and an element $h \in H$ has order $n$, then the number of elements in $H$ with order dividing $n$ is at most $k$.
+
+### Examples with Solutions
+
+#### Example 1
+Let $(G, \cdot)$ be a group of order $6$. Find all possible orders of subgroups.
+
+**Solution**
+
+Since the only divisors of $6$ are $1$, $2$, $3$, and $6$, by Lagrange's Theorem, any subgroup of $(G, \cdot)$ must have an order equal to one of these numbers. Therefore, there exist subgroups of orders $1$, $2$, $3$, and $6$.
+
+#### Example 2
+Determine the number of elements in a group $(G, \cdot)$ with order $8$ that have order dividing $4$.
+
+**Solution**
+
+Since any element with order dividing $4$ must be one of the square roots of the identity, by Lagrange's Theorem and properties of groups, we conclude there are at most two such elements.
+
+### Common Pitfalls
+
+* Misunderstanding the concept of associativity in monoids.
+* Confusing subgroups with normal subgroups.
+* Ignoring inverses when determining orders of elements.
+
+### Quick Summary
+
+* A monoid is a set with an associative binary operation and an identity element.
+* A group is a special type of monoid where every element has an inverse.
+* Lagrange's Theorem relates the order of subgroups to the index of those subgroups in the parent group.
+
+This theory note covers all key concepts related to monoids, groups, their properties, and applications. By mastering these concepts, you will be well-prepared for questions on this topic in future exams.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/properties-of-language.md b/frontend/public/assets/gate/cs/theory-of-computation/properties-of-language.md
new file mode 100644
index 0000000..db773df
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/properties-of-language.md
@@ -0,0 +1,108 @@
+# Properties of Language
+=====================================
+
+## Introduction
+---------------
+
+The properties of language are fundamental concepts in the Theory of Computation, focusing on the characteristics and behaviors of formal languages. This topic is crucial for understanding various aspects of computation, including regular languages, context-free languages, and their relationships.
+
+## Core Concepts
+-----------------
+
+### 1. Chomsky Normal Form (CNF)
+-------------------------------
+
+A context-free grammar in CNF has the following properties:
+
+* All production rules are of the form A → BC or S → aB (where A, B, C, and S are non-terminals and a is a terminal).
+* There are no ε-productions (production rules that produce the empty string).
+* No variable appears on both sides of a production rule.
+
+### 2. Regular Languages
+------------------------
+
+Regular languages are defined by regular expressions or finite automata. Key properties include:
+
+* Closure under union, intersection, and complementation.
+* Decidability: given two regular languages L1 and L2, we can decide whether L1 ∪ L2 is regular.
+* Pumping Lemma: if a language L is regular, there exists an integer p (the pumping length) such that any string w in L with |w| ≥ p can be divided into five substrings w = xyz, where |y| > 0 and |xy| ≤ p. We can pump the substring y zero or more times while maintaining a valid string.
+
+### 3. Context-Free Languages
+---------------------------
+
+Context-free languages are defined by context-free grammars. Key properties include:
+
+* Closure under union, concatenation, and Kleene star.
+* Undecidability: given two context-free languages L1 and L2, we cannot decide whether L1 ∪ L2 is context-free.
+
+### 4. Properties of Formal Languages
+-------------------------------------
+
+Some key properties of formal languages include:
+
+* *Prefix property*: If a language L has the prefix property, then for any string w in L and any prefix x of w, x is also in L.
+* *Suffix property*: Similarly, if L has the suffix property, then for any string w in L and any suffix y of w, y is also in L.
+
+## Key Formulas/Theorems
+-------------------------
+
+### 1. Pumping Lemma
+-------------------
+
+If a language L is regular, there exists an integer p (the pumping length) such that any string w in L with |w| ≥ p can be divided into five substrings w = xyz, where |y| > 0 and |xy| ≤ p. We can pump the substring y zero or more times while maintaining a valid string.
+
+### 2. Myhill-Nerode Theorem
+---------------------------
+
+If a language L is regular, then for any two strings x and y in Σ*, there exists a string z in Σ* such that either x + z is in L and y + z is not in L or neither of them is in L.
+
+## Problem Solving Patterns
+-----------------------------
+
+When solving problems related to properties of languages, follow these steps:
+
+1. Identify the type of language (regular, context-free, etc.) and any relevant properties.
+2. Use algorithms or theorems specific to that language type.
+3. Analyze the problem statement for additional constraints or requirements.
+
+## Examples with Solutions
+---------------------------
+
+### Example 1: Pumping Lemma
+
+Suppose we want to prove that a language L is regular using the pumping lemma. Assume L is not regular, and let p be the pumping length. Choose a string w in L with |w| ≥ p. By the pumping lemma, there exist strings x, y, and z such that w = xyz and |y| > 0 and |xy| ≤ p.
+
+* Solution: We need to show that either xy^iZ is in L for all i or none of them are in L.
+* Since w is in L, we know that xyz is in L. Let's choose an appropriate string Z such that it satisfies the condition.
+
+### Example 2: Myhill-Nerode Theorem
+
+Suppose we want to prove that a language L is regular using the Myhill-Nerode theorem. Choose two strings x and y in Σ*.
+
+* Solution: We need to find a string z in Σ* such that either x + z is in L and y + z is not in L or neither of them is in L.
+* Since L is regular, it must satisfy the Myhill-Nerode theorem. Therefore, there exists a string z such that the desired condition holds.
+
+## Common Pitfalls
+-----------------
+
+When working with properties of languages, avoid these common pitfalls:
+
+* Assuming all formal languages have the same properties (e.g., regularity).
+* Misapplying theorems or algorithms to non-relevant language types.
+* Failing to consider additional constraints or requirements in the problem statement.
+
+## Quick Summary
+-----------------
+
+Properties of languages are essential for understanding the Theory of Computation. Key concepts include:
+
+* Chomsky Normal Form (CNF)
+* Regular Languages:
+ * Closure under union, intersection, and complementation
+ * Decidability: whether two regular languages' union is regular
+ * Pumping Lemma
+* Context-Free Languages:
+ * Closure under union, concatenation, and Kleene star
+ * Undecidability: whether the union of two context-free languages is context-free
+
+By mastering these concepts and avoiding common pitfalls, you'll be well-prepared to tackle problems related to properties of languages.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/push-down-automata.md b/frontend/public/assets/gate/cs/theory-of-computation/push-down-automata.md
new file mode 100644
index 0000000..5c16b80
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/push-down-automata.md
@@ -0,0 +1,86 @@
+**Push Down Automata**
+======================
+
+### Introduction
+
+A pushdown automaton (PDA) is a type of automaton that uses a stack to remember information about the input. It's an extension of finite automata with the ability to use a stack, which enables it to recognize context-free languages.
+
+### Core Concepts
+
+* **States**: A PDA has a set of states, denoted as Σ = {s1, s2, ..., sn}.
+* **Stack Symbols**: A PDA uses a stack to store symbols from its stack alphabet Γ.
+* **Transition Function**: The transition function δ(s, a, X) = (s', β), where:
+ * s is the current state
+ * a is the input symbol
+ * X is the top of the stack
+ * s' is the next state
+ * β is the string to be pushed onto the stack
+* **Acceptance**: A PDA accepts an input string if it reaches an accepting state with an empty stack.
+
+### Key Formulas/Theorems
+
+There are no specific formulas or theorems related to pushdown automata. However, we can define a context-free grammar (CFG) using production rules:
+
+`S → AB | ε`
+
+Where `S` is the start symbol, `A` and `B` are non-terminal symbols, and `ε` represents the empty string.
+
+### Problem Solving Patterns
+
+When solving PDA problems, follow these steps:
+
+1. **Understand the PDA**: Read through the transition function to understand how the PDA operates.
+2. **Draw a diagram**: Visualize the PDA's behavior using a Mermaid diagram or other visual aids.
+3. **Analyze input strings**: Break down each string into its constituent parts and analyze how they interact with the PDA.
+
+### Examples with Solutions
+
+**Example 1**
+
+Consider the following PDA:
+
+| | | ε |
+| --- | --- | --- |
+| s | a, A → p | s' |
+
+The PDA has two states: `s` and `p`. The transition function is defined as follows:
+
+* When in state `s`, reading an input `a` and having `A` on top of the stack, push `p` onto the stack.
+
+**Solution**
+
+To determine whether a string is accepted by this PDA, we can follow these steps:
+
+1. Start with an empty stack.
+2. Read each character in the input string.
+3. Apply the transition function based on the current state and top of the stack.
+4. If at any point the stack becomes empty and the PDA is in an accepting state, accept the input.
+
+**Example 2**
+
+Consider the following PDA:
+
+| | | ε |
+| --- | --- | --- |
+| s | a, A → p | s' |
+
+This PDA has two states: `s` and `p`. However, there's no transition defined for reading an input `a` in state `s`.
+
+**Solution**
+
+Since the PDA does not have a defined transition for reading an input `a` in state `s`, it will reject any string that starts with `a`.
+
+### Common Pitfalls
+
+* **Misunderstanding the transition function**: Make sure to carefully read and understand the PDA's transition function.
+* **Incorrect analysis of stack operations**: Pay close attention to how the stack is modified during each step.
+* **Overlooking acceptance criteria**: Ensure that you're checking for an empty stack in accepting states.
+
+### Quick Summary
+
+* Pushdown automata use a stack to recognize context-free languages.
+* Transition function: δ(s, a, X) = (s', β)
+* Acceptance: Empty stack in accepting state
+* Examples:
+ * Analyze PDA behavior using diagrams and visual aids.
+ * Follow strict analysis for each input string.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/regular-expression.md b/frontend/public/assets/gate/cs/theory-of-computation/regular-expression.md
new file mode 100644
index 0000000..4e3ea66
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/regular-expression.md
@@ -0,0 +1,69 @@
+**Regular Expression**
+=======================
+
+### Introduction
+
+A regular expression (regex) is a pattern used to match strings of text, commonly used in various applications including data validation, text processing, and search functionality. Regular expressions are a powerful tool for specifying a set of strings that satisfy certain properties.
+
+### Core Concepts
+
+* **Alphabet**: A finite set of characters from which the regular expression is constructed.
+* **Strings**: Finite sequences of characters formed using the alphabet.
+* **Language**: A set of strings over an alphabet.
+* **Regular Expression (regex)**: A pattern used to match strings in a language.
+
+### Key Formulas/Theorems
+
+No specific formulas or theorems are directly related to regular expressions, but the following concepts and properties are crucial:
+
+* **Closure Properties**:
+ * Union: $L_1 \cup L_2$ is regular if both $L_1$ and $L_2$ are regular.
+ * Concatenation: $L_1 \cdot L_2$ is regular if both $L_1$ and $L_2$ are regular.
+ * Kleene Star: $L^*$ is regular if $L$ is regular.
+* **Regular Expression Operations**:
+ * Union: `(a + b)`
+ * Concatenation: `ab`
+ * Kleene Star: `a*`
+
+### Problem Solving Patterns
+
+1. **Understanding the Question**: Identify what is being asked and what type of language (regular, context-free) is being referred to.
+2. **Breaking Down the Language**: Break down complex languages into simpler components using union, concatenation, and Kleene star operations.
+3. **Identifying Patterns**: Look for patterns in the regular expression that correspond to the given language.
+
+### Examples with Solutions
+
+**Example 1: Regular Expression for Binary Numbers Divisible by 3**
+
+Given a string of binary digits (0s and 1s), we need to find the regular expression representing all such strings that are divisible by 3.
+
+* **Solution**: The pattern $(0*(1(01^*0)^*1))^*$ matches any binary number divisible by 3. Explanation:
+ * `0*` matches any number of leading zeros.
+ * `(01^*0)` matches a "01" pattern followed by zero or more "10" patterns and then a "0". This effectively checks for divisibility by 3.
+ * The Kleene star after this ensures that the pattern can be repeated any number of times.
+
+**Example 2: Context-Free Language Example**
+
+Given two languages, $L_1$ and $L_2$, we need to find which of the following languages are context-free:
+
+* $(1^2 L_1 \cup L_2)^*$
+
+* **Solution**: The language is context-free because it can be broken down into simpler components:
+ * $L_1$ and $L_2$ are given as regular (hence, also context-free).
+ * Kleene star operation on the union of two context-free languages results in a context-free language.
+
+### Common Pitfalls
+
+* **Misunderstanding the type of language**: Regular expressions are used to describe regular languages. Be careful when dealing with context-free or other types of languages.
+* **Not breaking down complex patterns**: Use basic operations like union, concatenation, and Kleene star to break down complex patterns into simpler ones.
+
+### Quick Summary
+
+* **Regular Expressions**:
+ * Patterns used to match strings in a language.
+ * Can be combined using union, concatenation, and Kleene star operations.
+* **Language Types**:
+ * Regular languages: Described by regular expressions.
+ * Context-free languages: More expressive than regular languages but not necessarily described by regular expressions.
+
+Regular expressions are a fundamental tool in computer science for specifying patterns in strings. Understanding their properties and how to apply them is crucial for solving problems related to regular languages and context-free languages.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/regular-expressions-and-finite-automata.md b/frontend/public/assets/gate/cs/theory-of-computation/regular-expressions-and-finite-automata.md
new file mode 100644
index 0000000..7488671
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/regular-expressions-and-finite-automata.md
@@ -0,0 +1,90 @@
+# Regular Expressions and Finite Automata
+## Introduction
+
+Regular expressions (regex) and finite automata (FA) are fundamental concepts in formal language theory, a branch of theoretical computer science. They serve as crucial tools for describing, analyzing, and manipulating languages over an alphabet.
+
+This study note covers the key concepts, formulas, and problem-solving patterns related to regex and FA, with emphasis on topics frequently tested in the GATE CS exam.
+
+## Core Concepts
+
+### Regular Expressions (Regex)
+
+A regular expression is a pattern that describes a set of strings. Regex can be thought about as a set of instructions for matching strings against a certain pattern.
+
+**Types of Regex**
+
+* **Simple Regex**: Matches a single character.
+* **Extended Regex**: Combines simple regex with special characters to create more complex patterns (e.g., `.*`, `[a-zA-Z0-9]`).
+* **POSIX Regex**: A variant of extended regex used in many Unix-like systems.
+
+### Finite Automata (FA)
+
+A finite automaton is a mathematical model that can be in one of a finite number of states. FAs are used to recognize regular languages, which consist of strings over an alphabet with a specific set of rules for constructing valid strings.
+
+**Types of FA**
+
+* **DFA (Deterministic Finite Automaton)**: Always moves to the next state based on the input symbol.
+* **NFA (Nondeterministic Finite Automaton)**: Can move to multiple states at once.
+
+## Key Formulas/Theorems
+
+### Pumping Lemma for Regular Languages
+
+If L is a regular language, then there exists an integer p ≥ 0 such that every string w in L with |w| ≥ p can be written as w = xyz, where:
+
+* |xy| ≤ p
+* |y| > 0
+* xy^iz ∈ L for all i ≥ 0
+
+### Regular Expression to NFA Conversion
+
+Given a regex pattern r, we can construct an equivalent NFA M(r) using the following steps:
+
+1. Create a new state q0 and set δ(q0, ε) = (q0)
+2. For each character c in Σ, create a new state qc and set δ(q0, c) = (qc)
+3. For each sequence of characters c_1 ... c_n, create a new state qn and set δ(q_(n-1), c_n) = (qn)
+
+## Problem Solving Patterns
+
+### Regular Expression Simplification
+
+To simplify a regex pattern r, we can use the following rules:
+
+* **Concatenation**: ab → a(b)
+* **Union**: a | b → (a)(b)
+* **Star**: a\* → \*(a)
+
+## Examples with Solutions
+
+### Example 1: Regex to NFA Conversion
+
+Given the regex pattern r = "ab\*", we can construct an equivalent NFA M(r) as follows:
+
+| State | Input | Next State |
+| --- | --- | --- |
+| q0 | ε | (q0) |
+| q1 | a | (q2) |
+| q2 | b | (q3) |
+
+### Example 2: Pumping Lemma Application
+
+Suppose we have a regular language L = {a^n b^m | n = m}. We can apply the pumping lemma to show that there exists an integer p ≥ 0 such that every string w in L with |w| ≥ p can be written as w = xyz, where xy^iz ∈ L for all i ≥ 0.
+
+## Common Pitfalls
+
+* **Overlooking Regex Simplification Rules**: Failing to apply the simplification rules (e.g., concatenation, union) can lead to incorrect results.
+* **Misapplying Pumping Lemma**: Incorrectly applying the pumping lemma or failing to identify a suitable pump can result in incorrect conclusions.
+
+## Quick Summary
+
+Regular expressions and finite automata are fundamental concepts in formal language theory. Key concepts include:
+
+* Regular Expressions:
+ * Types (simple, extended, POSIX)
+ * Simplification rules
+* Finite Automata:
+ * Types (DFA, NFA)
+ * Conversion from regex to NFA
+* Pumping Lemma for Regular Languages
+
+By mastering these concepts and avoiding common pitfalls, students can excel in the GATE CS exam.
\ No newline at end of file
diff --git a/frontend/public/assets/gate/cs/theory-of-computation/regular-expressions-and-nite-automata-context-free-grammars-and-push-down-automa.md b/frontend/public/assets/gate/cs/theory-of-computation/regular-expressions-and-nite-automata-context-free-grammars-and-push-down-automa.md
new file mode 100644
index 0000000..ed45cf2
--- /dev/null
+++ b/frontend/public/assets/gate/cs/theory-of-computation/regular-expressions-and-nite-automata-context-free-grammars-and-push-down-automa.md
@@ -0,0 +1,142 @@
+**Theory of Computation: Regular Expressions and Finite Automata, Context-Free Grammars, and Push Down Automata**
+===========================================================
+
+**Introduction**
+---------------
+
+The Theory of Computation deals with the study of computation itself. It encompasses various models of computation, including regular expressions, finite automata, context-free grammars, and pushdown automata. These concepts are crucial in understanding the limitations and capabilities of different computational models.
+
+**Core Concepts**
+-----------------
+
+### Regular Expressions
+
+* A regular expression is a pattern used to match strings.
+* It consists of characters, operators, and special symbols.
+* Some common operators include concatenation (\), Kleene star ( ), and union (|).
+
+### Finite Automata
+
+* A finite automaton (FA) is a 5-tuple M = (Q, Σ, δ, q0, F), where:
+ * Q is the set of states.
+ * Σ is the alphabet.
+ * δ is the transition function.
+ * q0 is the initial state.
+ * F is the set of accepting states.
+
+### Context-Free Grammars
+
+* A context-free grammar (CFG) is a 4-tuple G = (V, T, P, S), where:
+ * V is the set of non-terminal symbols.
+ * T is the set of terminal symbols.
+ * P is the set of production rules.
+ * S is the start symbol.
+
+### Push Down Automata
+
+* A pushdown automaton (PDA) is a 7-tuple M = (Q, Σ, Γ, δ, q0, Z, F), where:
+ * Q is the set of states.
+ * Σ is the input alphabet.
+ * Γ is the stack alphabet.
+ * δ is the transition function.
+ * q0 is the initial state.
+ * Z is the start symbol (initial stack content).
+ * F is the set of accepting states.
+
+**Key Formulas/Theorems**
+-------------------------
+
+### Pumping Lemma for Regular Languages
+
+* If L is a regular language, then there exists an integer p (the pumping length) such that any string w in L with |w| ≥ p can be written as w = xyz, where:
+ * |y| ≥ 1
+ * |xy| ≤ p
+ * For all i ≥ 0, xy^iz is also in L.
+
+### Myhill-Nerode Theorem
+
+* Two regular languages are equivalent if and only if their Nerode equivalence relation is the same.
+
+**Problem Solving Patterns**
+---------------------------
+
+### Regular Expressions
+
+* Use the Kleene star to match zero or more occurrences of a pattern.
+* Utilize the union operator to combine two patterns into one.
+
+### Finite Automata
+
+* Construct a DFA by converting an NFA using the powerset construction algorithm.
+* Apply the Myhill-Nerode theorem to determine language equivalence.
+
+### Context-Free Grammars
+
+* Convert a CFG to a PDA using the grammar simulation method.
+* Use the pumping lemma for regular languages to prove non-regularity.
+
+**Examples with Solutions**
+---------------------------
+
+### Example 1: DFA Construction
+
+Construct a DFA that accepts strings over {0, 1} with an even number of 1's.
+
+```mermaid
+graph LR
+ A[Start] --> B[No 1 yet]
+ B --> C[1 seen]
+ C --> D[Even 1's]
+ D --> E[End]
+```
+
+Solution:
+
+* States: {No 1 yet, 1 seen, Even 1's}
+* Alphabet: {0, 1}
+* Transition function:
+ * δ(No 1 yet, 0) = No 1 yet
+ * δ(No 1 yet, 1) = 1 seen
+ * δ(1 seen, 0) = No 1 yet
+ * δ(1 seen, 1) = Even 1's
+ * δ(Even 1's, 0) = Even 1's
+ * δ(Even 1's, 1) = Even 1's
+
+### Example 2: Pumping Lemma Application
+
+Prove that the language L = {anb^n | n ≥ 0} is not regular using the pumping lemma.
+
+Solution:
+
+* Assume L is regular.
+* By the pumping lemma, there exists an integer p such that any string w in L with |w| ≥ p can be written as w = xyz, where:
+ * |y| ≥ 1
+ * |xy| ≤ p
+ * For all i ≥ 0, xy^iz is also in L.
+* Let w = a^p b^p, which is in L.
+* Since |w| ≥ p, there exists y such that |y| ≥ 1 and |xy| ≤ p.
+* By the pumping lemma, xy^ib is also in L for all i ≥ 0.
+* However, this leads to a contradiction since a^p b^p does not contain any substring of the form a^k b^k with k > p.
+
+**Common Pitfalls**
+------------------
+
+### Regular Expressions
+
+* Misusing the union operator (|) instead of concatenation (\).
+* Failing to escape special characters in regular expressions.
+
+### Finite Automata
+
+* Confusing DFA and NFA or vice versa.
+* Incorrectly applying the Myhill-Nerode theorem.
+
+**Quick Summary**
+-----------------
+
+* Regular Expressions: patterns for matching strings, operators (concatenation, Kleene star, union).
+* Finite Automata: 5-tuple (Q, Σ, δ, q0, F), DFA/NFA conversion.
+* Context-Free Grammars: 4-tuple (V, T, P, S), CFG to PDA conversion using grammar simulation method.
+* Push Down Automata: 7-tuple (Q, Σ, Γ, δ, q0, Z, F).
+
+Note: The provided Quick Summary is a concise list of key concepts. It's essential for students to delve into each topic with more detail and practice solving problems related to regular expressions, finite automata, context-free grammars, and pushdown automata.
\ No newline at end of file
diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico
new file mode 100644
index 0000000..7678501
Binary files /dev/null and b/frontend/public/favicon.ico differ
diff --git a/frontend/public/logo.png b/frontend/public/logo.png
new file mode 100644
index 0000000..7678501
Binary files /dev/null and b/frontend/public/logo.png differ
diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json
new file mode 100644
index 0000000..f0a0b7a
--- /dev/null
+++ b/frontend/public/manifest.json
@@ -0,0 +1,16 @@
+{
+ "short_name": "DontCompete",
+ "name": "Don't Compete",
+ "description": "Master your subjects with theory, questions, and practice.",
+ "icons": [
+ {
+ "src": "logo.png",
+ "sizes": "1024x1024",
+ "type": "image/png"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#0f172a",
+ "background_color": "#0f172a"
+}
diff --git a/frontend/public/robots.txt b/frontend/public/robots.txt
new file mode 100644
index 0000000..e9e57dc
--- /dev/null
+++ b/frontend/public/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/frontend/src/components/Breadcrumb.tsx b/frontend/src/components/Breadcrumb.tsx
new file mode 100644
index 0000000..fcc26e7
--- /dev/null
+++ b/frontend/src/components/Breadcrumb.tsx
@@ -0,0 +1,37 @@
+import { Link } from '@tanstack/react-router'
+import { Home } from 'lucide-react'
+
+interface BreadcrumbItem {
+ label: string
+ href?: string
+}
+
+interface BreadcrumbProps {
+ items: BreadcrumbItem[]
+}
+
+export function Breadcrumb({ items }: BreadcrumbProps) {
+ return (
+