Stenogram Sejmu · 2026-07-29

Michał Gramatyka

Kadencja 10 · posiedzenie 63 · wypowiedź 207

Profil posła

Brak głosu imiennego z tego dnia, który potwierdzałby klub mówcy.

Pełna wypowiedź

10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 9. punkt porządku dziennego: Sprawozdanie Komisji Cyfryzacji, Innowacyjności i Nowoczesnych Technologii o rządowym projekcie ustawy o zmianie ustawy o świadczeniu usług drogą elektroniczną oraz niektórych innych ustaw (druki nr 2694 i 2815). Poseł Michał Gramatyka: Szanowny Panie Marszałku! Panie Ministrze! Panie Posłanki! Panowie Posłowie! To prawo powinno w Polsce obowiązywać już dawno. To prawo powinno obowiązywać po poprzedniej iteracji tej ustawy, kiedy to w skandaliczny i haniebny sposób przepisy zostały zawetowane przez pana prezydenta Nawrockiego. To prawo można by sprowadzić do jednego zdania: co jest nielegalne w świecie rzeczywistym, powinno być nielegalne on-line, powinno być nielegalne w świecie wirtualnym, bo tak naprawdę o to w Digital Services Act chodzi. Ale nie tylko o to. To prawo daje nam komfort bycia podmiotem wobec wielkiego biznesu, wobec tzw. big techu, dla którego my, nasze zaangażowanie, nasze emocje, nasze lajki, komentarze, udostępnienia są towarem, który oni mogą sprzedać na dowolnym rynku, w oparciu o który mogą nas profilować, mogą poznawać nasze decyzje zakupowe, mogą zrobić z nas po prostu towar, mogą zarabiać na nas pieniądze. A w momencie, kiedy podejmą wobec nas decyzję polegającą na usunięciu np. postu albo komentarza, to my nie mamy do kogo się odwołać. Czy państwo wiedzą, że od 2023 r., kiedy DSA zaczęło obowiązywać w Unii Europejskiej, w bazach danych wielkich platform działających on-line pojawiło się prawie pół miliarda tzw. decyzji moderacyjnych? W 99% to są decyzje polegające na działaniu algorytmów, podejmowane bez udziału żywego człowieka. W dziewięćdziesięciu kilku procentach przypadków nie sposób się od takiej decyzji odwołać, bo nie ma do kogo się odwołać. Po uchwaleniu tej ustawy na straży naszych interesów będzie stało polskie państwo, będą stały prawdziwe osoby, które znają na wylot świat internetowy, i kiedy będzie to potrzebne, będą mogły wziąć naszą stronę. Czy państwo wiedzą, że DSA, Digital Services Act, wymaga, aby wielkie platformy działające on-line stworzyły bezpieczne środowisko przeglądania sieci dla najmłodszych? To jest pierwsza linia oporu dla polskich dzieci przed całym złem, które może spotkać ich w Internecie. Czy państwo wiedzą, że to jest jeden z fundamentalnych elementów tego prawa, że bez implementacji, bez wskazania organów, takich jak Krajowa Rada Radiofonii i Telewizji, takich jak Urząd Komunikacji Elektronicznej, takich jak UOKiK, nie będzie można tych przepisów w Polsce egzekwować? W czyim interesie działają ludzie posługujący się tezami o cenzurze Internetu? Ci, których dzisiaj na sali nie ma, a przecież tyle się nakrzyczeli przy ostatniej dyskusji na temat tej ustawy. W czyim interesie oni działają? Czy naprawdę działają w interesie Polek i Polaków czy też może marzy im się puszczanie oczka do wielkiego biznesu, który ma przecież wielkie pieniądze? Digital Services Act, ustawa o prowadzeniu działalności w Internecie, ta ustawa, nad którą dzisiaj dyskutujemy, jest pewnego rodzaju kompromisem, została podzielona na dwie części. Ta, która budziła największe kontrowersje, będzie przedmiotem prac polskiego Sejmu wkrótce. Ta obecna wprowadza niezbędne minimum zachowań, które chronią w Internecie Polki i Polaków. Najwyższy czas. Te przepisy powinny obowiązywać już dawno. Klub Parlamentarny Polska 2050 oczywiście poprze to przedłożenie, bo to ze wszech miar i ze wszech stron dobre prawo. (Oklaski) Przebieg posiedzenia

Otwórz zachowany oryginał · Źródło urzędowe

Dowód treści wypowiedzi

Dowód kolejności na liście dnia

Kontekst w stenogramie

  1. Wcześniej · wypowiedź 205 Bożena Borowiec 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 9. punkt porządku dziennego: Sprawozdanie Komisji Cyfryzacji, Innowacyjności i Nowoczesnych Technologii o rządowym projekcie ustawy o zmianie ustawy o świadczeniu usług drogą elektroniczn
  2. Wcześniej · wypowiedź 206 Sławomir Ćwik 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 9. punkt porządku dziennego: Sprawozdanie Komisji Cyfryzacji, Innowacyjności i Nowoczesnych Technologii o rządowym projekcie ustawy o zmianie ustawy o świadczeniu usług drogą elektroniczn
  3. Później · wypowiedź 208 Jarosław Sachajko 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 9. punkt porządku dziennego: Sprawozdanie Komisji Cyfryzacji, Innowacyjności i Nowoczesnych Technologii o rządowym projekcie ustawy o zmianie ustawy o świadczeniu usług drogą elektroniczn
  4. Później · wypowiedź 209 Łukasz Ściebiorowski 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 9. punkt porządku dziennego: Sprawozdanie Komisji Cyfryzacji, Innowacyjności i Nowoczesnych Technologii o rządowym projekcie ustawy o zmianie ustawy o świadczeniu usług drogą elektroniczn
1. (3.01ms; exec 2.97 + fetch 0.04; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, d…
2. (1.09ms; exec 1.07 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
3. (0.73ms; exec 0.72 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3546 ORDER BY ordinal
4. (1.02ms; exec 1 + fetch 0.02; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcrip…
5. (1.49ms; exec 1.48 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
6. (4.22ms; exec 4.2 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
7. (1.65ms; exec 1.63 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3544 ORDER BY ordinal
8. (1.01ms; exec 1 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
9. (1.09ms; exec 1.07 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
10. (1.37ms; exec 1.36 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3545 ORDER BY ordinal
11. (1.7ms; exec 1.69 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
12. (0.92ms; exec 0.9 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
13. (1.25ms; exec 1.24 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3547 ORDER BY ordinal
14. (1.02ms; exec 1.01 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
15. (0.8ms; exec 0.79 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
16. (0.6ms; exec 0.56 + fetch 0.04; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3548 ORDER BY ordinal
17. (3.36ms; exec 3.34 + fetch 0.02; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_vote…
toggle
1. (3.01ms; exec 2.97 + fetch 0.04; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 14098 LIMIT 1
2. (1.09ms; exec 1.07 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14366 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
3. (0.73ms; exec 0.72 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3546 ORDER BY ordinal
4. (1.02ms; exec 1 + fetch 0.02; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcript_day_statements dayStatement JOIN sejm_statements statement ON statement.object_id = dayStatement.statement_id WHERE dayStatement.day_id = 13890 AND dayStatement.day_revision_id = 13480 AND dayStatement.ordinal BETWEEN 205 AND 209 AND statement.object_id <> 14098 ORDER BY dayStatement.ordinal
5. (1.49ms; exec 1.48 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 205) LIMIT 1
6. (4.22ms; exec 4.2 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14364 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
7. (1.65ms; exec 1.63 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3544 ORDER BY ordinal
8. (1.01ms; exec 1 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 206) LIMIT 1
9. (1.09ms; exec 1.07 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14365 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
10. (1.37ms; exec 1.36 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3545 ORDER BY ordinal
11. (1.7ms; exec 1.69 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 208) LIMIT 1
12. (0.92ms; exec 0.9 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14367 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
13. (1.25ms; exec 1.24 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3547 ORDER BY ordinal
14. (1.02ms; exec 1.01 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 209) LIMIT 1
15. (0.8ms; exec 0.79 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14374 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
16. (0.6ms; exec 0.56 + fetch 0.04; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3548 ORDER BY ordinal
17. (3.36ms; exec 3.34 + fetch 0.02; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 63 AND individual.mp_number = 117 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-07-29' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
Top slow:
4.22ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run …
3.36ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes indiv…
3.01ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.objec…
toggle
4.22ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14364 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
3.36ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 63 AND individual.mp_number = 117 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-07-29' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
3.01ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 14098 LIMIT 1
N+1 candidates:
5× (8.12ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing…
5× (5.6ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (5.22ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON versi…
toggle
5× (8.12ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = ? AND run.state = ? ORDER BY CASE extraction.quality_state WHEN ? THEN ? WHEN ? THEN ? ELSE ? END, run.finished_at DESC, extraction.id DESC LIMIT ?
5× (5.6ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (5.22ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = ? AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = ? AND document.document_kind = ? AND document.source_document_key = CONCAT(?, ?) LIMIT ?
PHP: 33.7ms | App: 33.3ms | DB: 26.3ms (17, rows: 19) [exec: 26ms, fetch: 0.3ms] | View: 0.3ms (1) | Mem: 2MB (peak: 2MB) | Files: 20
toggle files
(0.26ms) /app/templates/speeches/show.php
/app/public/index.php
/app/vendor/autoload.php
/app/vendor/composer/autoload_real.php
/app/vendor/composer/platform_check.php
/app/vendor/composer/ClassLoader.php
/app/vendor/composer/autoload_static.php
/app/vendor/symfony/deprecation-contracts/function.php
/app/vendor/symfony/polyfill-php83/bootstrap.php
/app/lib/PFrame.php
/app/config/credentials/local.php
/app/src/Http/PublicResponseCache.php
/app/src/Http/AuthRoutes.php
/app/src/Http/ReviewDecisionRoutes.php
/app/src/Http/TopicDecisionRoutes.php
/app/src/Http/WatchRoutes.php
/app/src/Http/SpeechController.php
/app/src/Overview/SpeechReadModel.php
/app/src/Text/TextSearch.php
/app/templates/layout.php