Snapshot #4 Seite
| Erfasst (UTC) | 2026-05-20 07:40 UTC |
|---|---|
| Quelle | https://www.war.gov/UFO/ ↗ |
| Inhalts-Hash | 08cb339318c69eb5a5ae8d051fd9ed9e826ad77c444fe1ee23ba0164fb4b15e2 |
| Größe | 172.0 KB |
HTML-Quelltext
Roher HTML-Snapshot der Seite zum Zeitpunkt der Erfassung. Wird bewusst als Quelltext angezeigt — gerendert wäre er kaputt (Stile/Skripte/Links zeigen auf war.gov). Für die Originaldarstellung die Rohdatei herunterladen.
<!DOCTYPE html>
<html lang="en-US">
<head id="Head"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<title>
Presidential Unsealing and Reporting System for UAP Encounters | U.S. Department of War
</title><meta id="MetaDescription" name="description" content="The Department of War provides the military forces needed to deter war and ensure our nation's security." /><meta id="MetaKeywords" name="keywords" content="Department of War, DOW, Secretary, Deputy Secretary, Joint Chief, United States, Military, Government, Pentagon, Secretary of War, Deputy Secretary of War" /><meta id="MetaRobots" name="robots" content="INDEX, FOLLOW" /><link href="/Resources/Shared/stylesheets/dnndefault/7.0.0/default.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Desktopmodules/SharedLibrary/Plugins/Bootstrap/css/bootstrap.min.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Portals/_default/Skins/DGOV2/skin.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Portals/_default/Containers/DGOV2/container.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Portals/1/portal.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/DesktopModules/MVC/DVIDSLiveEvents2/resources/css/livebadge.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Portals/_default/Skins/DGOV2/resources/css/dnn.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Portals/1/Interactive/2026/UFO/aaro07.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Desktopmodules/SharedLibrary/Plugins/SocialIcons/css/fa-social-icons.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Desktopmodules/SharedLibrary/Plugins/Skin/SkipNav/css/skipnav.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Desktopmodules/SharedLibrary/ValidatedPlugins/font-awesome6/css/all.min.css?cdv=2054" type="text/css" rel="stylesheet"/><link href="/Desktopmodules/SharedLibrary/ValidatedPlugins/font-awesome6/css/v4-shims.min.css?cdv=2054" type="text/css" rel="stylesheet"/><script src="/Resources/libraries/jQuery/03_07_01/jquery.js?cdv=2054" type="text/javascript"></script><script src="/Resources/libraries/jQuery-Migrate/03_04_01/jquery-migrate.js?cdv=2054" type="text/javascript"></script><script src="/Resources/libraries/jQuery-UI/01_13_03/jquery-ui.min.js?cdv=2054" type="text/javascript"></script><link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inconsolataa:[email protected]&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&display=swap" rel="stylesheet">
<!-- DataTables CSS --> <link rel="stylesheet" href="https://cdn.datatables.net/1.13.8/css/jquery.dataTables.min.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/slick/slick.min.js"></script>
<script src="https://cdn.datatables.net/1.13.8/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/slick/slick.css">
<meta property="og:title" content="Presidential Unsealing and Reporting System for UAP Encounters (PURSUE)"/>
<meta property="og:url" content="https://www.war.gov/UFO/"/>
<meta property="og:type" content="website" />
<meta property="og:image" content="https://war.gov/Portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR46-Unresolved-UAP-Report-INDOPACOM-2024.jpg"/>
<meta property="og:site_name" content="U.S. Department of War"/>
<meta property="og:description" content="At the direction of President Donald J. Trump, the Department of War is overseeing a multiagency effort to expeditiously find, review, identify, declassify and publicly release unresolved Unidentified Anomalous Phenomena-related records and historical documents in the federal government’s possession.”/>
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="https://www.war.gov/UFO/"/>
<meta name="twitter:creator" content="@DeptofWar" />
<meta name="twitter:title" content="Presidential Unsealing and Reporting System for UAP Encounters (PURSUE)"/>
<meta name="twitter:description" content="At the direction of President Donald J. Trump, the Department of War is overseeing a multiagency effort to expeditiously find, review, identify, declassify and publicly release unresolved Unidentified Anomalous Phenomena-related records and historical documents in the federal government’s possession." />
<meta name="twitter:image" content="https://war.gov/Portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR46-Unresolved-UAP-Report-INDOPACOM-2024.jpg" /><link rel='icon' href='/Portals/1/favicon.ico?ver=wSJzjXOlssZVvf5cay20vA%3d%3d' type='image/x-icon' /><meta name='host' content='DWIA Public Web' /><meta name='contact' content='[email protected]' /><script src="/Desktopmodules/SharedLibrary/Plugins/GoogleAnalytics/Universal-Federated-Analytics-8.7.js?agency=DOD&subagency=DMA&sitetopic=dma.web&dclink=true&pga4=G-SB6KFHKWNW" id="_fed_an_ua_tag" ></script><meta name="viewport" content="width=device-width,initial-scale=1" /></head>
<body id="Body">
<form method="post" action="/UFO/" id="Form" enctype="multipart/form-data">
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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" />
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['Form'];
if (!theForm) {
theForm = document.Form;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<script src="/WebResource.axd?d=pynGkmcFUV16vn23mRKJ3YfxgZO6Vg-qfn4DLZzvdN4FsDO3JF6o8Ai9U2w1&t=638901627720898773" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=NJmAwtEo3IqOv4sUh-Rig0r8ribOsOru6PRUuOPeOUTxaLr0LkqwjUZ1KfN2pxsTzXrhnEn2qPqMmFHAgZnpJORcEUNLaSpc226qJmze-FYKMecKHwPV-k73fvQH1Ku4KKXAUA2&t=32e5dfca" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=dwY9oWetJoJ4ZjA-1jPcEhP7ER5pj7vUnbl87xIrp5KgCIH7OinCkP3cK37LGan3ayBW32yRZSEgGl2tgZv50n3b6-V5-8OCkx2VKFRvNoTMy9OkcSdmsXHaJpvqsXD5HuMXQgmzxnfjN1aI0&t=32e5dfca" type="text/javascript"></script>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334" />
<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="OEvnKQ0zi4AzWR2JrJJPSNH91HKqm4uzWMg/wTFMItkLcSYOaxTgFbO3tb6HhjRFYd9m5DUou31pMZBkqdJ1m78DMwqBgiXRB8tKAS2ZkOGeDclu" />
</div><script src="/js/dnn.modalpopup.js?cdv=2054" type="text/javascript"></script><script src="/Portals/_default/Skins/DGOV2/resources/js/skin.js?cdv=2054" type="text/javascript"></script><script src="/Portals/_default/Skins/DGOV2/resources/js/menu.js?cdv=2054" type="text/javascript"></script><script src="/js/dnncore.js?cdv=2054" type="text/javascript"></script><script src="/Desktopmodules/SharedLibrary/Plugins/Mobile-Detect/mobile-detect.min.js?cdv=2054" type="text/javascript"></script><script src="/Desktopmodules/SharedLibrary/ValidatedPlugins/moment/moment.js?cdv=2054" type="text/javascript"></script><script src="/Desktopmodules/SharedLibrary/ValidatedPlugins/vue/vue.min.js?cdv=2054" type="text/javascript"></script><script src="/Desktopmodules/SharedLibrary/ValidatedPlugins/vue-resource/vue-resource.min.js?cdv=2054" type="text/javascript"></script><script src="/Desktopmodules/SharedLibrary/Plugins/Skin/js/common.js?cdv=2054" type="text/javascript"></script><script src="/DesktopModules/MVC/DVIDSLiveEvents2/Resources/js/dvids-dle-api.js?cdv=2054" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager', 'Form', [], [], [], 3600, '');
//]]>
</script>
<!--CDF(Javascript|/Portals/_default/Skins/DGOV2/resources/js/skin.js?cdv=2054|DnnBodyProvider|100)-->
<!--CDF(Javascript|/Portals/_default/Skins/DGOV2/resources/js/menu.js?cdv=2054|DnnBodyProvider|100)-->
<script type="text/javascript">
$('#personaBar-iframe').load(function() {$('#personaBar-iframe').contents().find("head").append($("<style type='text/css'>.personabar .personabarLogo {}</style>")); });
</script>
<script type="text/javascript">
jQuery(document).ready(function() {
initializeSkin();
});
</script>
<script type="text/javascript">
var skinvars = {"SiteName":"U.S. Department of War","SiteShortName":"Defense.gov","SiteSubTitle":"","aid":"defensegov","IsSecureConnection":true,"IsBackEnd":false,"DisableShrink":false,"IsAuthenticated":false,"SearchDomain":"search.defense.gov","SiteUrl":"https://www.war.gov/","LastLogin":null,"IsLastLoginFail":false,"IncludePiwik":false,"PiwikSiteID":-1,"SocialLinks":{"Facebook":{"Url":"","Window":"","Relationship":null},"Twitter":{"Url":"","Window":"","Relationship":null},"YouTube":{"Url":"","Window":"","Relationship":null},"Flickr":{"Url":"","Window":"","Relationship":null},"Pintrest":{"Url":"","Window":"","Relationship":null},"Instagram":{"Url":"","Window":"","Relationship":null},"Blog":{"Url":"","Window":"","Relationship":null},"RSS":{"Url":"","Window":"","Relationship":null},"Podcast":{"Url":"","Window":"","Relationship":null},"Email":{"Url":"","Window":"","Relationship":null},"LinkedIn":{"Url":"","Window":"","Relationship":null},"Snapchat":{"Url":"","Window":"","Relationship":null}},"SiteLinks":null,"LogoffTimeout":10500000,"SiteAltLogoText":"Logo for U.S. Department of War"};
</script>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"Organization","logo":"https://www.war.gov/Portals/1/Images/DOD-Icon-Header.png?ver=5sAfFl2--9znca0j3SrX_g%3d%3d","name":"U.S. Department of War","url":"https://www.war.gov/","sameAs":[]}</script>
<div id="skip-link-holder"><a id="skip-link" href="#skip-target">Skip to main content (Press Enter).</a></div>
<header class="top hover new-nav " id="header-main">
<div class="header_banner_container">
<div class="header_banner_inner">
<div class="header_banner_flag">
An official website of the United States Government <div class="header_banner_accordion" tabindex="0">
<u>Here's how you know</u><i class="fa fa-chevron-down expand-more-container"></i>
</div>
</div>
<div class="header_banner_panel" style="">
<div class="header_banner_panel_item">
<span class="header_banner_dotgov"></span>
<div class="header_banner_content">
<p><strong>Official websites use .gov</strong></p>
A <strong>.gov</strong> website belongs to an official
government organization in the United States.
</div>
</div>
<div class="header_banner_panel_item https">
<span class="header_banner_https"></span>
<div class="header_banner_content">
<p><strong>Secure .gov websites use HTTPS</strong></p>
<div>
A <strong>lock (<span class="header_banner_icon_lock">
<svg xmlns="http://www.w3.org/2000/svg" width="52" height="64" viewBox="0 0 52 64">
<title>lock</title>
<path fill="#FFF" fill-rule="evenodd" d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z" />
</svg>
</span>)</strong> or
<strong>https://</strong> means you’ve safely connected to the .gov website.
Share sensitive information only on official, secure websites.
</div>
</div>
</div>
</div>
</div>
</div>
<div class="header-utility-nav">
<div class="inner">
<ul class="social-nav"><li class="social-item"><a href="https://twitter.com/DeptofWar" target="_blank" rel="noopener noreferrer" aria-label="X opens in a new window" title="X"><span class="social-icon fa-brands fa-x-twitter social-link-4"></span></a></li><li class="social-item"><a href="https://www.facebook.com/DepartmentofWar" target="_blank" rel="noopener noreferrer" aria-label="Facebook opens in a new window" title="Facebook"><span class="social-icon fa-brands fa-facebook-f social-link-1"></span></a></li><li class="social-item"><a href="https://www.instagram.com/deptofwar" target="_blank" rel="noopener noreferrer" aria-label="Instagram opens in a new window" title="Instagram"><span class="social-icon fa fa-instagram social-link-3"></span></a></li><li class="social-item"><a href="http://www.linkedin.com/company/deptofwar" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn opens in a new window" title="LinkedIn"><span class="social-icon fa-brands fa-linkedin-in social-link-50"></span></a></li><li class="social-item"><a href="https://www.youtube.com/@deptofwar" target="_blank" rel="noopener noreferrer" aria-label="YouTube opens in a new window" title="YouTube"><span class="social-icon fa-brands fa-youtube social-link-2"></span></a></li></ul>
</div>
</div>
<div class="header-main-nav-wrapper">
<div class="header-inner">
<div class="logo-wrapper">
<a class="logo" href="https://www.war.gov/" target="" aria-label="U.S. Department of War Homepage">
<img src="/Portals/1/Images/DOD-Icon-Header.png?ver=5sAfFl2--9znca0j3SrX_g%3d%3d" alt="Logo for U.S. Department of War" title="U.S. Department of War" />
<span>U.S. Department <span>of</span> War</span>
</a>
</div>
<!--CDF(Css|/DesktopModules/MVC/DVIDSLiveEvents2/resources/css/livebadge.css?cdv=2054|DnnPageHeaderProvider|100)-->
<div v-cloak id="dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3"
v-on:click="handleBadgeClick()"
:class="{'dle-live-badge': true,'live-now': videos.liveNow.length > 0, 'open': ddState === 1, 'opening': ddState === 2}"
v-if="videos.all.length > 0">
<div id="dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3-tab-before" tabindex="0" v-on:keydown="handleBadgeKeyDown" v-on:keyup="handleBadgeKeyUp"></div>
<div class="dle-live-badge-container"
v-on:mouseenter="setLiveBadgeWidth()">
<div class="dle-live-badge-button">
<div class="dle-pulsating-circle" v-if="videos.liveNow.length > 0"></div>
<div class="dle-live-badge-title">{{buttonLabel}}</div>
</div>
<div class="lead-in-event" >
<div v-if="videos.all.length > 0">
<div class="event-title">
<div class="event-title-text" style="opacity: 0; white-space: nowrap">{{videos.all[0].title}}</div>
</div>
</div>
</div>
</div>
<div class="dle-live-badge-dd-arrow"></div>
<div class="dle-live-badge-dropdown"
v-bind:style="dropdownStyles"
>
<div v-if="videos.liveNow.length > 0" class="event-list">
<div v-if="videos.liveToday.length > 0 || videos.liveLater.length > 0" class="event-list-heading">Live Now</div>
<div class="drop-item"
v-for="(item, index) in videos.liveNow">
<a :href="item.url" class="event-title">
<span class="event-title-text">{{item.title}}</span>
</a>
</div>
</div>
<div v-if="videos.liveToday.length > 0 || videos.liveLater.length > 0" class="event-list">
<div v-if="videos.liveNow.length > 0" class="event-list-heading">Upcoming</div>
<div class="drop-item"
v-for="(item, index) in videos.liveToday">
<a :href="item.url" class="event-title">
<span class="time">{{item.formattedStartDate}}</span>
<span class="event-title-text">{{item.title}}</span>
</a>
</div>
<div class="drop-item"
v-for="(item, index) in videos.liveLater">
<a :href="item.url" class="event-title">
<span class="time">{{item.formattedStartDate}}</span><br />
<span class="event-title-text">{{item.title}}</span>
</a>
</div>
</div>
</div>
<div id="dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3-tab-after" tabindex="0" v-on:keydown="handleBadgeKeyDown" v-on:keyup="handleBadgeKeyUp"></div>
</div>
<script>
(async () => {
const liveBadgeConfig = {"data":{"dvidsParams":{"eventFilterType":"man","toggleEventListMaxResults":true,"toggleUpcomingEventMaxResultView":true,"toggleLiveTodayEventMaxResultView":false,"toggleEventListToDateRange":false,"toggleEventHashtags":true,"toggleIncludeExternals":false,"toggleEventSort":true,"eventListMaxResults":"50","upcomingEventMaxResultView":"5","liveTodayEventMaxResultView":"3","eventListToDays":7,"includeExternals":false,"eventHashtags":"dgovlive","eventSort":"asc","autoplay":true,"manualSelectedEvents":"","showLiveNowList":true,"showLiveTodayList":true,"showUpcomingEventsList":true,"apiKey":"key-68bb60d16b35e","dvidsURL":"https://api.dvidshub.net/","dvidsStagingURL":null,"showTestVid":false,"showPanelWhenEmpty":false,"toDate":"2026-07-09T23:59:59.0000000-04:00","fromDate":"2026-05-20T01:39:11.4675824-04:00"},"dleDNNSettings":{"templateLayout":"Left","templateStyle":"DGOV","moduleMode":"Player","moduleTitle":"LIVE EVENTS","liveNowListTitle":"LIVE TODAY","liveNowDefaultText":"There are currently no events scheduled for today.","liveTodayListTitle":"LIVE TODAY","liveTodayDefaultText":"No Events Currently Scheduled","upcomingEventsListTitle":"UPCOMING EVENTS","upcomingEventsDefaultText":"There are currently no upcoming events scheduled.","countdownTitle":"UP NEXT","countdownTitleFuture":"UPCOMING EVENT","templateDisclaimer":"Having playback problems? \u003ca href=\"/News/Live-Events/\"\u003eClick here to refresh the page.\u003c/a\u003e If you continue to have issues, try changing to a different web browser.","videoBugPosition":"TopRight","showModuleTitle":false,"showEventTitle":true,"showEventDesc":true,"showCountdownTitle":true,"showCountdownDesc":true,"showVideoBug":false,"liveNowActiveClick":"on","liveNowActiveManualTime":"fifteenMin","toggleError":false,"selectedSMMSealId":2002859035,"selectedSeal":"https://media.defense.gov/2021/Sep/21/2002859035/400/400/0/210921-D-D0439-103.PNG","selectedSMMSealForErrorsId":2002859034,"selectedSealForErrors":"https://media.defense.gov/2021/Sep/21/2002859034/400/400/0/210921-D-D0439-102.PNG","selectedSMMCountdownBackgroundId":2002042277,"selectedBackground":"https://media.defense.gov/2018/Sep/19/2002042277/800/450/0/180919-D-MA852-001.JPG","selectedSMMNoEventBackgroundId":2002041905,"selectedNoEvent":"https://media.defense.gov/2018/Sep/18/2002041905/800/450/0/180918-D-MA852-004.JPG","selectedDVIDSVideoBugId":2002041896,"selectedVideoBug":"https://media.defense.gov/2018/Sep/18/2002041896/200/200/0/180918-D-MA852-002.PNG","dvidsVideoPlayerUrl":"https://www.war.gov/Multimedia/Videos?videoid=","dvidsLiveEventsUrl":"https://www.war.gov/News/LiveEvents/#/?currentVideo=","noEventMessage":"There are currently no scheduled events.","noEventsLink":"/Multimedia/Videos/","toggleLiveEventVideoBug":false,"liveEventVideoBugPosition":"TopRight","isBackend":false},"dleTestSettings":null}};
new Vue({
el:'#dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3',
data: {
isLiveNow: false,
videos: {
all: [],
liveNow: [],
liveToday: [],
liveLater: []
},
config: {},
dropdownStyles: {},
ddState: 0,
leadInText: '',
leadInTimeoutId: null,
leadInTimeoutOnce: false,
},
computed: {
buttonLabel: function () {
if (this.videos && this.videos.liveNow && this.videos.liveNow.length > 0)
return "Live Now";
if (this.videos && this.videos.liveToday && this.videos.liveToday.length > 0 && this.videos.liveLater.length === 0) {
return "Live Today";
}
return "Live Events";;
},
},
watch:{
'videos': function () {
const docBodyClassName = 'dle-has-live-events-badge';
if (this.videos && this.videos.all && this.videos.all.length > 0) {
document.body.classList.add(docBodyClassName);
} else {
document.body.classList.remove(docBodyClassName);
}
}
},
created() {
window.addEventListener("resize", this.liveBadgeResizeHandler);
window.addEventListener("scroll", this.liveBadgeResizeHandler);
},
destroyed() {
window.removeEventListener("resize", this.liveBadgeResizeHandler);
window.removeEventListener("resize", this.leadInTextResizeHandler);
window.removeEventListener("scroll", this.liveBadgeResizeHandler);
},
mounted: function () {
try {
this.config = {
dvids: liveBadgeConfig.data.dvidsParams,
dle: liveBadgeConfig.data.dleDNNSettings,
test: liveBadgeConfig.data.dleTestSettings
};
this.getVideos();
} catch (e) {
this.onBackend() && console.error(e);
}
if (this.config.test && this.config.test.testUseTestData) {
return;
}
setInterval(() => {
this.getVideos();
},
15000);
},
methods: {
getVideos: async function () {
let videoListObj = {};
try {
const dvidsParams = DLEApi.createDvidsParams(this.config.dvids);
if (this.config.test && this.config.test.testUseTestData) {
videoListObj = await DLEApi.getFakeVideoList(
this.config.test.testLiveNowEventsCount,
this.config.test.testLiveTodayEventsCount,
this.config.test.testUpcomingEventsCount,
this.config.test.testEventsJson,
this.config.dvids.apiKey
);
videoListObj.videos = videoListObj.videos.slice(0, dvidsParams.max_results);
} else {
videoListObj = await DLEApi.getVideoList(dvidsParams);
}
this.videos = DLEApi.parseVideoList(videoListObj, this.config);
setTimeout(() => {
this.setupLeadIn();
},
100);
} catch (e) {
this.onBackend() && console.error(e);
}
},
setLiveBadgeWidth: function () {
let positioningEl;
try {
positioningEl = 'header .header-inner' ?
document.querySelector('header .header-inner') :
document.body;
if (positioningEl === null) {
positioningEl = document.body;
}
} catch (e) {
this.onBackend() && console.warn('DVIDS Live Events dropdown container not found. The error is:', e);
positioningEl = document.body;
}
try {
const ppos = positioningEl.getBoundingClientRect();
const dd = document.querySelector('.dle-live-badge-dropdown');
if (dd.style.display === "block") return;
dd.style.visibility = 'hidden';
dd.style.display = 'block';
dd.style.width = 'auto';
dd.style.marginLeft = 0;
const ddRect = dd.getBoundingClientRect();
dd.style.display = 'none';
dd.style.visibility = 'visible';
let newWidth = Math.abs(ppos.right - ddRect.left);
const minWidth = ddRect.width;
if (newWidth < minWidth) {
newWidth = minWidth;
}
let newLeft = 0;
if (ddRect.x + newWidth > document.body.clientWidth) {
newLeft = document.body.clientWidth - ddRect.x - newWidth;
}
dd.style.width = newWidth + 'px';
dd.style.marginLeft = newLeft + 'px';
} catch (e) {
this.onBackend() && console.error('DVIDS Live Events error:', e);
}
},
liveBadgeResizeHandler: function () {
if (this.ddState === 0)
return;
this.manualStateChange();
},
manualStateChange: function () {
const vm = this;
if (vm.ddState === 0) {
$('body').addClass('dle-dd-open');
vm.ddState = 1;
vm.dropdownStyles = {
...vm.dropdownStyles,
display: 'block',
};
} else if (vm.ddState === 1) {
vm.ddState = 0;
vm.dropdownStyles = {
...vm.dropdownStyles,
display: 'none',
};
$('body').removeClass('dle-dd-open');
}
},
handleBadgeKeyDown: function (event) {
if (!event) return;
if ((event.target.id === 'dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3-tab-before' && event.key.toUpperCase() === 'TAB' && !event.shiftKey) ||
(event.target.id === 'dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3-tab-after' && event.key.toUpperCase() === 'TAB' && event.shiftKey))
event.preventDefault();
},
handleBadgeKeyUp: function (event) {
if (!event) return;
event.preventDefault();
const vm = this;
this.setLiveBadgeWidth();
this.manualStateChange();
if (vm.ddState === 1) {
setTimeout(() => {
if (event.key.toUpperCase() === 'TAB' && !event.shiftKey) {
$(".dle-live-badge-dropdown a:first").focus();
} else {
$(".dle-live-badge-dropdown a:last").focus();
}
$(".dle-live-badge-dropdown a:first").off();
$(".dle-live-badge-dropdown a:first").on('keydown',
function (e) {
if (e.shiftKey && e.key.toUpperCase() === 'TAB') {
e.preventDefault();
$('#dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3-tab-before').focus();
}
});
},
50);
$(".dle-live-badge-dropdown a:last").off();
$(".dle-live-badge-dropdown a:last").on('keydown',
function (e) {
if (e.key.toUpperCase() === 'TAB' && !e.shiftKey) {
e.preventDefault();
$('#dle-live-badge-67c61e74-61e2-4703-85df-f9bfa4becbc3-tab-after').focus();
}
});
}
},
handleBadgeClick: function () {
if (!window.matchMedia('(max-width: 768px)').matches) {
try {
window.location.href = this.config.dle.dvidsLiveEventsUrl;
} catch (e) {
this.onBackend() && console.error('DVIDS Live Events error: ', e);
}
}
if (this.ddState === 0) {
this.setLiveBadgeWidth();
}
this.manualStateChange();
},
setupLeadIn: function () {
if (!this.videos || !this.videos.all || this.videos.all.length === 0) {
return;
}
this.leadInText = this.videos.all[0].title;
window.removeEventListener("resize", this.leadInTextResizeHandler);
window.addEventListener("resize", this.leadInTextResizeHandler);
this.checkLeadInWidth();
},
checkLeadInWidth: function () {
const vm = this;
$(this.$el).find('.lead-in-event .event-title-text').each(function () {
let el = this;
el.innerText = vm.leadInText;
el.style.whiteSpace = "nowrap";
el.style.overflow = "visible";
const oneLineBounds = el.getBoundingClientRect();
el.style.whiteSpace = "normal";
const nLinesBounds = el.getBoundingClientRect();
if (nLinesBounds.height > oneLineBounds.height) {
const splitText = vm.leadInText.split(' ');
for (let i = 0; i < splitText.length; i++) {
const newText = splitText.slice(0, splitText.length - 1 - i);
el.innerText = newText.join(' ') + '...';
const newTextBounds = el.getBoundingClientRect();
if (newTextBounds.height <= oneLineBounds.height) {
break;
}
}
}
el.style.overflow = "hidden";
el.style.opacity = 1;
});
},
leadInTextResizeHandler: function () {
const vm = this;
// Clear the debounce timer
clearTimeout(vm.leadInTimeoutId);
// Debounce timer
vm.leadInTimeoutId = setTimeout(() => {
vm.checkLeadInWidth();
vm.leadInTimeoutOnce = false;
}, 10);
// Run once immediately
if (!vm.leadInTimeoutOnce) {
vm.checkLeadInWidth();
vm.leadInTimeoutOnce = true;
}
},
onBackend: function () {
return this.config && this.config.dle && this.config.dle.isBackend;
}
}
});
})();
</script>
<nav class="main">
<ul>
<li class="mobile-back"><a href="#"><i class="fa fa-chevron-left"></i>Back</a></li>
<li class="mobile-home"><a href="/">Home</a></li>
<li class="mobile-level1-placeholder"><a href="#">Place Holder</a></li>
<li class="desktop-blank"></li>
<li class="parent top-level ">
<a href="https://www.war.gov/News/" tabindex="0" aria-expanded="false">News<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/News/Press-Products/" tabindex="0" aria-expanded="false"><span class="main">Press Products</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/News/Today-in-DOW/" tabindex="0" ><span class="main">Today in DOW</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Live-Events/" tabindex="0" ><span class="main">Live Events</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Releases/" tabindex="0" ><span class="main">Releases</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Advisories/" tabindex="0" ><span class="main">Advisories</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Transcripts/" tabindex="0" ><span class="main">Transcripts</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Speeches/" tabindex="0" ><span class="main">Speeches</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Publications/" tabindex="0" ><span class="main">Publications</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Contracts/" tabindex="0" ><span class="main">Contracts</span></a>
</li>
</ul>
</li>
<li class="parent">
<a href="https://www.war.gov/News/Newsroom/" tabindex="0" aria-expanded="false"><span class="main">Newsroom</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/News/News-Stories/" tabindex="0" ><span class="main">News Stories</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Feature-Stories/" tabindex="0" ><span class="main">Feature Stories</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/From-the-Services/" tabindex="0" ><span class="main">Stories from the Services</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/Multimedia/" tabindex="0" aria-expanded="false">Multimedia<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/Multimedia/" aria-expanded="false"><span class="main">Multimedia</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/Multimedia/Photos/" tabindex="0" ><span class="main">Photos</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Photo-Collections/" tabindex="0" ><span class="main">Photo Collections</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Photo-Collections/Week-In-Photos/" tabindex="0" ><span class="main">Week In Photos</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Videos/" tabindex="0" ><span class="main">Videos</span></a>
</li>
</ul>
</li>
<li class="parent">
<a href="https://www.war.gov/Multimedia/Experience/" tabindex="0" aria-expanded="false"><span class="main">Interactive Experiences</span></a>
<ul class="parent">
<li class="">
<a href="https://www.defense.gov/Multimedia/Experience/category/25144/" tabindex="0" ><span class="main">Visual Stories</span></a>
</li>
<li class="">
<a href="https://www.defense.gov/Multimedia/Experience/category/22642/" tabindex="0" ><span class="main">Quizzes</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Experience/" tabindex="0" ><span class="main">All Interactive</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/Spotlights/" tabindex="0" aria-expanded="false">Spotlights<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/Spotlights/" aria-expanded="false"><span class="main">Topics</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/Spotlights/Drone-Dominance/" tabindex="0" ><span class="main">Drone Dominance</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/DOW-Support-to-the-Southern-Border/" tabindex="0" ><span class="main">DOW Support to the Southern Border</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/Value-of-Service/" tabindex="0" ><span class="main">Value of Service</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/COVID-19-Reinstatement/" tabindex="0" ><span class="main">COVID-19 Reinstatement</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/" tabindex="0" ><span class="main">All Spotlights</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/About/" tabindex="0" aria-expanded="false">About<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/About/Leadership/" tabindex="0" aria-expanded="false"><span class="main">Leadership</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/About/Secretary-of-War/" tabindex="0" ><span class="main">Secretary of War</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Deputy-Secretary-of-War/" tabindex="0" ><span class="main">Deputy Secretary of War</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Chairman-of-the-Joint-Chiefs-of-Staff/" tabindex="0" ><span class="main">Chairman of the Joint Chiefs of Staff</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Vice-Chairman-of-the-Joint-Chiefs-of-Staff/" tabindex="0" ><span class="main">Vice Chairman of the Joint Chiefs of Staff</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Office-of-the-Secretary-of-War/" tabindex="0" ><span class="main">Office of the Secretary of War</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Biographies/" tabindex="0" ><span class="main">More Leaders</span></a>
</li>
</ul>
</li>
<li class="parent">
<a href="https://www.war.gov/About/" aria-expanded="false"><span class="main">Components</span></a>
<ul class="parent">
<li class="">
<a href="https://www.army.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Army</span></a>
</li>
<li class="">
<a href="https://www.marines.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Marine Corps</span></a>
</li>
<li class="">
<a href="https://www.navy.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Navy</span></a>
</li>
<li class="">
<a href="https://www.af.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Air Force</span></a>
</li>
<li class="">
<a href="https://www.spaceforce.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Space Force</span></a>
</li>
<li class="">
<a href="https://www.uscg.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Coast Guard</span></a>
</li>
<li class="">
<a href="https://www.nationalguard.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">National Guard</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Combatant-Commands/" tabindex="0" ><span class="main">Combatant Commands</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/Resources/" tabindex="0" aria-expanded="false">Resources<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/Resources/" tabindex="0" aria-expanded="false"><span class="main">Resources</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/Spotlights/Guidance-for-Federal-Personnel-and-Readiness-Policies/" tabindex="0" ><span class="main">Executive Orders: Guidance for Federal Personnel & Readiness Policies</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Contact/Help-Center/" tabindex="0" ><span class="main">Help Center</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Resources/" tabindex="0" ><span class="main">Resources</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Contact/" tabindex="0" ><span class="main">Contact</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class=" top-level active">
<a href="https://www.war.gov/UFO/" tabindex="0" >UFO<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
</li>
</ul>
<button type="button" class="nav-search-icon" aria-label="Open search" aria-expanded="false" aria-controls="desktop-nav-search">
<span class="fa fa-search" aria-hidden="true"></span>
</button>
<div class="nav-search" id="desktop-nav-search" role="search">
<label for="desktop-search" class="sr-only">Search</label>
<input id="desktop-search" type="search" autocomplete="off" maxlength="256" name="header-search" placeholder="Search..." value="">
<button type="button" class="search-icon" aria-label="Submit search"><span class="fa fa-search" aria-hidden="true"></span></button>
<button type="button" class="close-icon" aria-label="Close search"><span class="desktop-search-close" aria-hidden="true"></span></button>
</div>
<div class="level2-backdrop">
<div class="backdrop-image"></div>
</div>
</nav>
<div id="nav-burger" class="hide-on-mobile-nav-open" role="button" tabindex="0" aria-label="toggle navigation"><span></span><span></span><span></span><span></span></div>
</div>
</div>
<div id="mobile-overlay"></div>
<div id="nav-drawer">
<div class="drawer-inner">
<div id="nav-burger-mobile" class="internal" role="button" tabindex="0" aria-label="toggle navigation"><span></span><span></span><span></span><span></span></div>
<div class="search-wrap">
<label for="mobile-search" class="sr-only">Search</label>
<input id="mobile-search" type="search" placeholder="Search" maxlength="256" autocomplete="off" name="search-main" />
<button type="button" id="search-main-icon" aria-label="Search"><span class="fa fa-search" aria-hidden="true"></span></button>
<button type="button" class="skin-search-go">Search</button>
</div>
<nav>
<div class="primary">
<ul>
<li class="mobile-back"><a href="#"><i class="fa fa-chevron-left"></i>Back</a></li>
<li class="mobile-home"><a href="/">Home</a></li>
<li class="mobile-level1-placeholder"><a href="#">Place Holder</a></li>
<li class="desktop-blank"></li>
<li class="parent top-level ">
<a href="https://www.war.gov/News/" tabindex="0" aria-expanded="false">News<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/News/Press-Products/" tabindex="0" aria-expanded="false"><span class="main">Press Products</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/News/Today-in-DOW/" tabindex="0" ><span class="main">Today in DOW</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Live-Events/" tabindex="0" ><span class="main">Live Events</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Releases/" tabindex="0" ><span class="main">Releases</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Advisories/" tabindex="0" ><span class="main">Advisories</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Transcripts/" tabindex="0" ><span class="main">Transcripts</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Speeches/" tabindex="0" ><span class="main">Speeches</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Publications/" tabindex="0" ><span class="main">Publications</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Contracts/" tabindex="0" ><span class="main">Contracts</span></a>
</li>
</ul>
</li>
<li class="parent">
<a href="https://www.war.gov/News/Newsroom/" tabindex="0" aria-expanded="false"><span class="main">Newsroom</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/News/News-Stories/" tabindex="0" ><span class="main">News Stories</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/Feature-Stories/" tabindex="0" ><span class="main">Feature Stories</span></a>
</li>
<li class="">
<a href="https://www.war.gov/News/From-the-Services/" tabindex="0" ><span class="main">Stories from the Services</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/Multimedia/" tabindex="0" aria-expanded="false">Multimedia<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/Multimedia/" aria-expanded="false"><span class="main">Multimedia</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/Multimedia/Photos/" tabindex="0" ><span class="main">Photos</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Photo-Collections/" tabindex="0" ><span class="main">Photo Collections</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Photo-Collections/Week-In-Photos/" tabindex="0" ><span class="main">Week In Photos</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Videos/" tabindex="0" ><span class="main">Videos</span></a>
</li>
</ul>
</li>
<li class="parent">
<a href="https://www.war.gov/Multimedia/Experience/" tabindex="0" aria-expanded="false"><span class="main">Interactive Experiences</span></a>
<ul class="parent">
<li class="">
<a href="https://www.defense.gov/Multimedia/Experience/category/25144/" tabindex="0" ><span class="main">Visual Stories</span></a>
</li>
<li class="">
<a href="https://www.defense.gov/Multimedia/Experience/category/22642/" tabindex="0" ><span class="main">Quizzes</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Multimedia/Experience/" tabindex="0" ><span class="main">All Interactive</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/Spotlights/" tabindex="0" aria-expanded="false">Spotlights<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/Spotlights/" aria-expanded="false"><span class="main">Topics</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/Spotlights/Drone-Dominance/" tabindex="0" ><span class="main">Drone Dominance</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/DOW-Support-to-the-Southern-Border/" tabindex="0" ><span class="main">DOW Support to the Southern Border</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/Value-of-Service/" tabindex="0" ><span class="main">Value of Service</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/COVID-19-Reinstatement/" tabindex="0" ><span class="main">COVID-19 Reinstatement</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Spotlights/" tabindex="0" ><span class="main">All Spotlights</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/About/" tabindex="0" aria-expanded="false">About<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/About/Leadership/" tabindex="0" aria-expanded="false"><span class="main">Leadership</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/About/Secretary-of-War/" tabindex="0" ><span class="main">Secretary of War</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Deputy-Secretary-of-War/" tabindex="0" ><span class="main">Deputy Secretary of War</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Chairman-of-the-Joint-Chiefs-of-Staff/" tabindex="0" ><span class="main">Chairman of the Joint Chiefs of Staff</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Vice-Chairman-of-the-Joint-Chiefs-of-Staff/" tabindex="0" ><span class="main">Vice Chairman of the Joint Chiefs of Staff</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Office-of-the-Secretary-of-War/" tabindex="0" ><span class="main">Office of the Secretary of War</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Biographies/" tabindex="0" ><span class="main">More Leaders</span></a>
</li>
</ul>
</li>
<li class="parent">
<a href="https://www.war.gov/About/" aria-expanded="false"><span class="main">Components</span></a>
<ul class="parent">
<li class="">
<a href="https://www.army.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Army</span></a>
</li>
<li class="">
<a href="https://www.marines.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Marine Corps</span></a>
</li>
<li class="">
<a href="https://www.navy.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Navy</span></a>
</li>
<li class="">
<a href="https://www.af.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Air Force</span></a>
</li>
<li class="">
<a href="https://www.spaceforce.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Space Force</span></a>
</li>
<li class="">
<a href="https://www.uscg.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">Coast Guard</span></a>
</li>
<li class="">
<a href="https://www.nationalguard.mil/" target="_blank" rel="noopeneer noreferrer" tabindex="0" ><span class="main">National Guard</span></a>
</li>
<li class="">
<a href="https://www.war.gov/About/Combatant-Commands/" tabindex="0" ><span class="main">Combatant Commands</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class="parent top-level ">
<a href="https://www.war.gov/Resources/" tabindex="0" aria-expanded="false">Resources<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="level2-container">
<ul class="level2">
<li class="parent">
<a href="https://www.war.gov/Resources/" tabindex="0" aria-expanded="false"><span class="main">Resources</span></a>
<ul class="parent">
<li class="">
<a href="https://www.war.gov/Spotlights/Guidance-for-Federal-Personnel-and-Readiness-Policies/" tabindex="0" ><span class="main">Executive Orders: Guidance for Federal Personnel & Readiness Policies</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Contact/Help-Center/" tabindex="0" ><span class="main">Help Center</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Resources/" tabindex="0" ><span class="main">Resources</span></a>
</li>
<li class="">
<a href="https://www.war.gov/Contact/" tabindex="0" ><span class="main">Contact</span></a>
</li>
</ul>
</li>
</ul>
</div>
</li>
<li class=" top-level active">
<a href="https://www.war.gov/UFO/" tabindex="0" >UFO<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
</li>
</ul>
<ul>
<li class="parent top-level">
<a href="#" target="" tabindex="0" aria-expanded="false">Legal & Administrative<span class="mobile-arrow"><i class="fa fa-chevron-right"></i></span></a>
<div class="arrow-down"><i></i></div>
<div class="level2-container">
<ul class="level2">
<ul class=""><li class=""><a href="/Legal-Administrative/Privacy-Security/ "><span class="text text-link-12">Privacy & Security</span></a></li><li class=""><a href="/Legal-Administrative/Links-Disclaimer/ "><span class="text text-link-17">Links Disclaimer</span></a></li><li class=""><a href="http://dodcio.defense.gov/DoDSection508/Std_Stmt.aspx" target="_blank" rel="noopener noreferrer" aria-label="Section 508 opens in a new window"><span class="text text-link-13">Section 508</span></a></li><li class=""><a href="/resources/social-media-policy/"><span class="text text-link-52">Social Media Policy</span></a></li><li class=""><a href="http://dodcio.defense.gov/DoD-Web-Policy/ " target="_blank" rel="noopener noreferrer" aria-label="Web Policy opens in a new window"><span class="text text-link-14">Web Policy</span></a></li><li class=""><a href="http://www.esd.whs.mil/DD/plainlanguage/ " target="_blank" rel="noopener noreferrer" aria-label="Plain Writing Act opens in a new window"><span class="text text-link-37">Plain Writing Act</span></a></li><li class=""><a href="http://www.dodig.mil/ " target="_blank" rel="noopener noreferrer" aria-label="DOW IG opens in a new window"><span class="text text-link-38">DOW IG</span></a></li><li class=""><a href="https://policy.defense.gov/OUSDP-Offices/Reporting-Civilian-Casualties/ " target="_blank" rel="noopener noreferrer" aria-label="Reporting Civilian Casualties opens in a new window"><span class="text text-link-39">Reporting Civilian Casualties</span></a></li><li class=""><a href="https://prhome.war.gov/NoFear/" target="_blank" rel="noopener noreferrer" aria-label="No FEAR Act opens in a new window"><span class="text text-link-40">No FEAR Act</span></a></li><li class=""><a href="https://www.dma.mil/Services/Visual-Information/References/Limitations/" target="_blank" rel="noopener noreferrer" aria-label="Imagery Use opens in a new window"><span class="text text-link-41">Imagery Use</span></a></li><li class=""><a href="https://www.esd.whs.mil/FOID/ " target="_blank" rel="noopener noreferrer" aria-label="FOIA opens in a new window"><span class="text text-link-42">FOIA</span></a></li><li class=""><a href="http://open.defense.gov/ " target="_blank" rel="noopener noreferrer" aria-label="Open GOV opens in a new window"><span class="text text-link-43">Open GOV</span></a></li><li class=""><a href="https://media.defense.gov/2023/Mar/13/2003178168/-1/-1/1/DOD-STRATEGIC-MGMT-PLAN-2023.PDF" target="_blank" rel="noopener noreferrer" aria-label="Strategic Management Plan opens in a new window"><span class="text text-link-44">Strategic Management Plan</span></a></li><li class=""><a href="https://www.usa.gov/ " target="_blank" rel="noopener noreferrer" aria-label="USA.gov opens in a new window"><span class="text text-link-45">USA.gov</span></a></li><li class=""><a href="https://business.defense.gov/ " target="_blank" rel="noopener noreferrer" aria-label="Small Business Act opens in a new window"><span class="text text-link-46">Small Business Act</span></a></li><li class=""><a href="/site-index/ "><span class="text text-link-47">Site Map</span></a></li></ul>
</ul>
</div>
</li>
</ul>
</div>
<div class="social">
<ul class="social-nav"><li class="social-item"><a href="https://twitter.com/DeptofWar" target="_blank" rel="noopener noreferrer" aria-label="X opens in a new window" title="X"><span class="social-icon fa-brands fa-x-twitter social-link-4"></span></a></li><li class="social-item"><a href="https://www.facebook.com/DepartmentofWar" target="_blank" rel="noopener noreferrer" aria-label="Facebook opens in a new window" title="Facebook"><span class="social-icon fa-brands fa-facebook-f social-link-1"></span></a></li><li class="social-item"><a href="https://www.instagram.com/deptofwar" target="_blank" rel="noopener noreferrer" aria-label="Instagram opens in a new window" title="Instagram"><span class="social-icon fa fa-instagram social-link-3"></span></a></li><li class="social-item"><a href="http://www.linkedin.com/company/deptofwar" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn opens in a new window" title="LinkedIn"><span class="social-icon fa-brands fa-linkedin-in social-link-50"></span></a></li><li class="social-item"><a href="https://www.youtube.com/@deptofwar" target="_blank" rel="noopener noreferrer" aria-label="YouTube opens in a new window" title="YouTube"><span class="social-icon fa-brands fa-youtube social-link-2"></span></a></li></ul>
</div>
</nav>
</div>
</div>
</header>
<main>
<p id="skip-target-holder"><a id="skip-target" name="skip-target" role="button" class="skip" tabindex="-1" aria-label="Skip Target"></a></p>
<div id="dnn_ContentPaneFullBleed1"><div class="DnnModule DnnModule-DNN_HTML DnnModule-9589"><a name="9589"></a>
<div class="empty-container base-container">
<div id="dnn_ctr9589_ContentPane"><!-- Start_Module_9589 --><style>
<!-- FIX MOBILE PADDING -->
@media (max-width: 760px) {
#aaro .record-row {
padding: 18px 34px 18px 34px;
}
}
#aaro [data-sort-field] {
position: relative;
padding-right: 34px;
}
#aaro [data-sort-field]::after {
content: "\f078";
font-family: "Font Awesome 6 Free";
font-weight: 900;
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-20%);
font-size: 10px;
line-height: 1;
opacity: .35;
transition:
opacity .2s ease,
color .2s ease;
}
#aaro [data-sort-field]::before {
content: "\f077";
font-family: "Font Awesome 6 Free";
font-weight: 900;
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-95%);
font-size: 10px;
line-height: 1;
opacity: .35;
transition:
opacity .2s ease,
color .2s ease;
}
#aaro [data-sort-field].is-active-sort {
color: #85bcff;
}
#aaro [data-sort-field].is-sort-asc::before {
opacity: 1;
color: #85bcff;
}
#aaro [data-sort-field].is-sort-asc::after {
opacity: .18;
}
#aaro [data-sort-field].is-sort-desc::after {
opacity: 1;
color: #85bcff;
}
#aaro [data-sort-field].is-sort-desc::before {
opacity: .18;
}
</style><div id="dnn_ctr9589_ModuleContent" class="DNNModuleContent ModDNNHTMLC">
<div id="dnn_ctr9589_HtmlModule_lblContent" class="Normal">
<div id="aaro" class="site"> <header aria-label="PURSUE site navigation" class="masthead"> <div class="descriptor descriptor-laptop"> Presidential Unsealing and Reporting System for UAP Encounters (PURSUE) </div> <nav aria-label="Primary left navigation" class="nav-stack nav-stack-primary" > <a class="nav-link active-link" href="#intro">Intro</a> <a class="nav-link" href="#directive">About</a> </nav> <nav aria-label="Primary right navigation" class="nav-stack nav-stack-secondary" > <a class="nav-link" href="#release">Release</a> <a class="nav-link" href="#learn">Learn More</a> </nav> <nav aria-label="Primary navigation" class="mobile-nav"> <a class="nav-link active-link" href="#intro">Intro</a> <a class="nav-link" href="#directive">About</a> <a class="nav-link" href="#release">Release</a> <a class="nav-link" href="#learn">Learn More</a> </nav> <div aria-label="Location metadata" class="meta-stack"> <span> <div class="est-clock"></div> </span> <span>38°52′15″N, 77°03′18″W</span> </div> <div class="descriptor descriptor-mobile"> Presidential Unsealing and Reporting System for UAP Encounters (PURSUE) </div> </header> <main> <section aria-label="Evidence photo carousel" class="hero reveal-up" id="intro" > <div class="evidence-field"> <div class="carousel-track"> <button class="thumb thumb-1" type="button" data-lightbox-index="0" data-lightbox-title="FBI Photo A001" data-lightbox-url="/UFO/#FBI-Photo-A001" data-lightbox-sentence="Infrared still image (black hot) captured of unidentified object over western United States in December of 2025." aria-label="Open evidence photo 1" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/FBI-Photo-1.jpg" alt="Infrared still image (black hot) captured of unidentified object over western United States in December of 2025." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="1" data-lightbox-title="FBI Photo A005" data-lightbox-url="/UFO/#FBI-Photo-A005" data-lightbox-sentence="Infrared still image (black hot) captured of unidentified object over western United States in December of 2025." aria-label="Open evidence photo 2" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/FBI-Photo-A5.jpg" alt="Infrared still image (black hot) captured of unidentified object over western United States in December of 2025." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="2" data-lightbox-title="FBI Photo B002" data-lightbox-url="/UFO/#FBI-Photo-B002" data-lightbox-sentence="Infrared still image (black hot) captured of unidentified object over western United States in September of 2025." aria-label="Open evidence photo 3" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/FBI-Photo-B2.jpg" alt="Infrared still image (black hot) captured of unidentified object over western United States in September of 2025." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="3" data-lightbox-title="FBI Photo B007" data-lightbox-url="/UFO/#FBI-Photo-B007" data-lightbox-sentence="Infrared still image (black hot) captured of unidentified object below helicopter over western United States in September of 2025." aria-label="Open evidence photo 4" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/FBI-Photo-B7-.jpg" alt="Infrared still image (black hot) captured of unidentified object below helicopter over western United States in September of 2025." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="4" data-lightbox-title="FBI Photo B018" data-lightbox-url="/UFO/#FBI-Photo-B018" data-lightbox-sentence="Infrared still image (black hot) captured of unidentified object(s) over western United States in September of 2025." aria-label="Open evidence photo 5" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/FBI-Photo-B18.jpg" alt="Infrared still image (black hot) captured of unidentified object(s) over western United States in September of 2025." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="5" data-lightbox-title="FBI Photo B020" data-lightbox-url="/UFO/#FBI-Photo-B020" data-lightbox-sentence="Infrared still image (black hot) captured of unidentified object(s) over western United States in September of 2025." aria-label="Open evidence photo 6" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/FBI-Photo-B20.jpg" alt="Infrared still image (black hot) captured of unidentified object(s) over western United States in September of 2025." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="6" data-lightbox-title="FBI September 2023 Sighting - Composite Sketch" data-lightbox-url="/UFO/#FBI-September-2023-Sighting-Composite-Sketch" data-lightbox-sentence="Actual site photo with FBI Lab rendered graphic overlay depicting corroborating eyewitness reports from September 2023 of an apparent ellipsoid bronze metallic object materializing out of a bright light in the sky, 130-195 feet in length, and disappearing instantaneously." aria-label="Open evidence photo 7" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/2024-04-30-Composite-Sketch.jpg" alt="Recreation of potential anomalous sighting in southeastern United States in September of 2023." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="7" data-lightbox-title="NASA-UAP-VM006, Apollo 17, 1972" data-lightbox-url="/UFO/#NASA-UAP-VM006-Apollo-17-1972" data-lightbox-sentence="Archival imagery from the Apollo 17 mission to the Moon. The yellow box contains an enlarged area of the original photo in which three lights are visible above the lunar terrain." aria-label="Open evidence photo 8" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/NASA-UAP-VM6-Apollo-17-1972.jpg" alt="Archival imagery from the Apollo 17 mission to the Moon. The yellow box contains an enlarged area of the original photo in which three lights are visible above the lunar terrain." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="8" data-lightbox-title="DOW-UAP-PR019, Unresolved UAP Report, Middle East, May 2022" data-lightbox-url="/UFO/#DOW-UAP-PR019-Unresolved-UAP-Report-Middle-East-May-2022" data-lightbox-sentence="Still from a video that a U.S. military operator reported as featuring UAP flying across their screen." aria-label="Open evidence photo 9" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR19-Unresolved-UAP-Report-Middle-East-May-2022.jpg" alt="Still from a video that a U.S. military operator reported as featuring UAP flying across their screen." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="9" data-lightbox-title="DOW-UAP-PR026, Unresolved UAP Report, United Arab Emirates, October 2023" data-lightbox-url="/UFO/#DOW-UAP-PR026-Unresolved-UAP-Report-United-Arab-Emirates-October-2023" data-lightbox-sentence="Still from a video captured near the United Arab Emirates featuring reported UAP." aria-label="Open evidence photo 10" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR26-Unresolved-UAP-Report-United-Arab-Emirates-October-2023.jpg" alt="Still from a video captured near the United Arab Emirates featuring reported UAP." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="10" data-lightbox-title="DOW-UAP-PR034, Unresolved UAP Report, Greece, October 2023" data-lightbox-url="/UFO/#DOW-UAP-PR034-Unresolved-UAP-Report-Greece-October-2023" data-lightbox-sentence="A U.S. military operator reported observing UAP flying just above the surface of the ocean, taking multiple 90-degree turns at high speed." aria-label="Open evidence photo 11" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR34-Unresolved-UAP-Report-Greece-October-2023.jpg" alt="Aqua-colored scope lines are shown over a gray background, with a scattering of clouds and black squares and rectangles." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="11" data-lightbox-title="DOW-UAP-PR035, Unresolved UAP Report, Greece, October 2023" data-lightbox-url="/UFO/#DOW-UAP-PR035-Unresolved-UAP-Report-Greece-October-2023" data-lightbox-sentence="A U.S. military operator reported UAP near Greece flying straight above the ocean towards land." aria-label="Open evidence photo 12" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR35-Unresolved-UAP-Report-Greece-October-2023.jpg" alt="A U.S. military operator reported UAP near Greece flying straight above the ocean towards land." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="12" data-lightbox-title="DOW-UAP-PR038, Unresolved UAP Report, Middle East, 2013" data-lightbox-url="/UFO/#DOW-UAP-PR038-Unresolved-UAP-Report-Middle-East-2013" data-lightbox-sentence="Still from a video featuring an eight-pointed area of contrast captured via infrared sensor." aria-label="Open evidence photo 13" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR38-Unresolved-UAP-Report-Middle-East-2013.jpg" alt="Still from a video featuring an eight-pointed area of contrast captured via infrared sensor." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="13" data-lightbox-title="DOW-UAP-PR043, Unresolved UAP Report, Africa, 2025" data-lightbox-url="/UFO/#DOW-UAP-PR043-Unresolved-UAP-Report-Africa-2025" data-lightbox-sentence="A U.S. military operator reported UAP while operating within African airspace." aria-label="Open evidence photo 14" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR43-Unresolved-UAP-Report-Africa-2025.jpg" alt="A U.S. military operator reported UAP while operating within African airspace." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="14" data-lightbox-title="DOW-UAP-PR045, Unresolved UAP Report, Middle East, 2020" data-lightbox-url="/UFO/#DOW-UAP-PR045-Unresolved-UAP-Report-Middle-East-2020" data-lightbox-sentence="In 2020, the U.S. Air Force reported UAP in the southern United States." aria-label="Open evidence photo 15" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR45-Unresolved-UAP-Report-Middle-East-2020.jpg" alt="In 2020, the U.S. Air Force reported UAP in the southern United States." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="15" data-lightbox-title="DOW-UAP-PR046, Unresolved UAP Report, INDOPACOM, 2024" data-lightbox-url="/UFO/#DOW-UAP-PR046-Unresolved-UAP-Report-INDOPACOM-2024" data-lightbox-sentence="U.S. Indo-Pacific Command reported UAP that resembles a football-shaped body near Japan." aria-label="Open evidence photo 16" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR46-Unresolved-UAP-Report-INDOPACOM-2024.jpg" alt="U.S. Indo-Pacific Command reported UAP that resembles a football-shaped body near Japan." /> </button> <button class="thumb thumb-1" type="button" data-lightbox-index="16" data-lightbox-title="DOW-UAP-PR049, Unresolved UAP Report, Department of the Army, 2026" data-lightbox-url="/UFO/#DOW-UAP-PR049-Unresolved-UAP-Report-Department-of-the-Army-2026" data-lightbox-sentence="The U.S. Army reported UAP in North America in 2026." aria-label="Open evidence photo 17" aria-pressed="false"> <img src="/portals/1/Interactive/2026/UFO/Slideshow/DOW-UAP-PR49-Unresolved-UAP-Report-Department-of-the-Army-2026.jpg" alt="The U.S. Army reported UAP in North America in 2026." /> </button> </div> </div> <div aria-label="Evidence carousel controls" class="carousel-controls"> <button type="button" data-carousel-target="0" aria-label="Show evidence photo 1" ></button> <button type="button" data-carousel-target="1" aria-label="Show evidence photo 2" ></button> <button type="button" data-carousel-target="2" aria-label="Show evidence photo 3" ></button> <button type="button" data-carousel-target="3" aria-label="Show evidence photo 4" ></button> <button type="button" data-carousel-target="4" aria-label="Show evidence photo 5" ></button> <button type="button" data-carousel-target="5" aria-label="Show evidence photo 6" ></button> <button type="button" data-carousel-target="6" aria-label="Show evidence photo 7" ></button> <button type="button" data-carousel-target="7" aria-label="Show evidence photo 8" ></button> <button type="button" data-carousel-target="8" aria-label="Show evidence photo 9" ></button> <button type="button" data-carousel-target="9" aria-label="Show evidence photo 10" ></button> <button type="button" data-carousel-target="10" aria-label="Show evidence photo 11" ></button> <button type="button" data-carousel-target="11" aria-label="Show evidence photo 12" ></button> <button type="button" data-carousel-target="12" aria-label="Show evidence photo 13" ></button> <button type="button" data-carousel-target="13" aria-label="Show evidence photo 14" ></button> <button type="button" data-carousel-target="14" aria-label="Show evidence photo 15" ></button> <button type="button" data-carousel-target="15" aria-label="Show evidence photo 16" ></button> <button type="button" data-carousel-target="16" aria-label="Show evidence photo 17" ></button> </div> <button class="carousel-nav carousel-prev" type="button" data-carousel-prev aria-label="Previous evidence photo" > < </button> <button class="carousel-nav carousel-next" type="button" data-carousel-next aria-label="Next evidence photo" > > </button> </section> <section aria-label="Presidential statement" class="quote-grid reveal-up"> <div class="quote-source"> <div>Donald J. Trump</div> <span>Truth Social</span> </div> <p class="quote-text"> Based on the tremendous interest shown, I will be directing the Secretary of War, and other relevant Departments and Agencies, to begin the process of identifying and releasing Government files related to alien and extraterrestrial life, unidentified aerial phenomena (UAP), and unidentified flying objects (UFOs), and any and all other information connected to these highly complex, but extremely interesting and important, matters. GOD BLESS AMERICA! </p> <div class="date">[02 19 26]</div> </section> <section aria-labelledby="directive-title" class="section reveal-up" id="directive" > <h1 class="section-heading" id="directive-title"> <span>Directive</span> </h1> <div class="directive-grid"> <p> In response to President Donald J. Trump’s directive for transparency on U.S. government information regarding Unidentified Anomalous Phenomena (UAP), the Department of War (DOW), with support from the Office of the Director of National Intelligence (ODNI), is overseeing government wide efforts to expeditiously find, review, identify, declassify and publicly release unresolved UAP-related records and historical documents in the federal government’s possession. This is an unprecedented, historic undertaking that requires coordination between dozens of agencies and the review of tens of millions of records, many existing only on paper, spanning many decades. Given the scope of this task, the Department of War will be releasing new materials on a rolling basis as they are discovered and declassified, with tranches posted every few weeks. </p> <p> The materials archived here are unresolved cases, meaning the government is unable to make a definitive determination on the nature of the observed phenomena. This can occur for a variety of reasons, including a lack of sufficient data, and the Department of War welcomes the application of private-sector analysis, information and expertise. DOW will continue to conduct separate reporting on resolved UAP cases, as mandated by statute. Under this Administration, we will pursue the truth and share our findings with the American people. </p> </div> </section> <section aria-labelledby="release-title" class="section release reveal-up" id="release" > <h2 class="section-heading" id="release-title"> <a class="tab-link"href="/News/Releases/Release/Article/4480582/department-of-war-releases-unidentified-anomalous-phenomena-files-in-historic-t/"><span>Release 01</span></a> </h2> <div class="release-top"> <p class="release-meta">CLEARED FOR RELEASE - MAY 8, 2026</p> </div> <div class="uapr-content"> <div class="release-copy"> <p> STATEMENT: "The Department of War is in lockstep with President Trump to bring unprecedented transparency regarding our government’s understanding of Unidentified Anomalous Phenomena. These files, hidden behind classifications, have long fueled justified speculation — and it’s time the American people see it for themselves. This release of declassified documents demonstrates the Trump Administration’s earnest commitment to unprecedented transparency." -United States Secretary of War Pete Hegseth </p> </div> <div class="uarp-buttons"> <a class="button arrow" href="/medialink/ufo/bundle/Release_1.zip">Download All [.PDF] + [.IMG]</a> <a class="button arrow" href="https://cdn.dvidshub.net/press/uapvideos.zip">DOWNLOAD ALL [.VID] </a> </div> </div> </section> <section aria-label="Released records" class="records reveal-up" id="records" > <div class="record-search-wrap"> <input type="text" class="record-search" id="recordSearch" placeholder="Search records..." aria-label="Search records" /> <button type="button" class="record-search-clear" id="recordSearchClear" aria-label="Clear search"> ✕ </button> <div class="record-filter-controls"> <div class="custom-filter" data-filter="agency"> <button type="button" class="custom-filter-button">All Agencies</button> <div class="custom-filter-menu"></div> </div> <div class="custom-filter" data-filter="releaseDate"> <button type="button" class="custom-filter-button">All Releases</button> <div class="custom-filter-menu"></div> </div> <div class="custom-filter" data-filter="type"> <button type="button" class="custom-filter-button">All Types</button> <div class="custom-filter-menu"></div> </div> </div> </div> <div aria-label="Record filters" class="filters"> <button class="filter-cell" type="button" data-sort-field="title"><span id="recordCount">0</span> Files</button> <button class="filter-cell" type="button" data-sort-field="agency"> Agency </button> <button class="filter-cell" type="button" data-sort-field="releaseDate"> Release </button> <button class="filter-cell" type="button" data-sort-field="incidentDate" > Incident Date </button> <button class="filter-cell" type="button" data-sort-field="incidentLocation" > Incident Location </button> <button class="filter-cell" type="button" data-sort-field="fileType"> Type </button> </div> <div class="record-list" id="recordList"></div> <nav aria-label="Records pagination" class="pagination" id="recordPagination" ></nav> </section> <section aria-labelledby="learn-title" class="section learn reveal-up" id="learn" > <h2 class="section-heading" id="learn-title"><span>Learn More</span></h2> <div class="learn-row"> <p>If you want to see other historical UAP records:</p> <a class="button arrow" href="https://www.aaro.mil/" rel="noreferrer" target="_blank" >Visit AARO.mil </a> </div> </section> </main> <div aria-label="Evidence image viewer" aria-modal="true" class="lightbox" hidden="" id="evidence-lightbox" role="dialog" > <button class="lightbox-close" type="button" data-lightbox-close> Close </button> <button class="lightbox-step lightbox-prev" type="button" data-lightbox-prev aria-label="Previous lightbox image" > < </button> <figure class="lightbox-frame"> <img alt="" id="lightbox-image" src="" /> <figcaption> <span id="lightbox-caption">[PR-011] Evidence photo 1</span> </figcaption> </figure> <button aria-label="Next lightbox image" class="lightbox-step lightbox-next" data-lightbox-next="" type="button" > > </button> </div> <div aria-labelledby="record-modal-title" aria-modal="true" class="record-modal" hidden="" id="record-modal" role="dialog" > <div class="record-modal-shell" data-record-modal-shell=""> <header class="record-modal-header"> <div class="record-modal-titlebar"> <span class="record-modal-agency" data-record-modal-agency="" >[AARO]</span ><span aria-hidden="true" class="record-modal-divider">\\</span> <h2 data-record-modal-title="" id="record-modal-title"> Record detail </h2> </div> <div class="record-modal-actions"> <button aria-label="Close record detail" class="record-modal-close" data-record-modal-close="" type="button" > X </button> </div> </header> <div class="record-modal-content"> <div class="record-modal-left"> <div class="record-modal-summary"> <div class="record-modal-copy" data-record-modal-copy=""></div> <button class="button arrow record-modal-download" data-record-modal-download="" disabled="disabled" type="button" download > Download </button> </div> <dl class="record-modal-facts" data-record-modal-facts=""> </dl> </div> <div class="record-media" data-record-modal-media=""></div> </div> </div> </div> <footer class="footer"> <div> Presidential Unsealing and Reporting System for UAP Encounters (PURSUE) </div> <div class="meta-stack"> <span> <div class="est-clock"></div> </span> <span>38°52′15″N, 77°03′18″W</span> </div> </footer> </div> <a style="display: none;" href="/Portals/1/Interactive/2026/UFO/uap-release001.csv"/>
</div>
</div> <!-- Analytics Script -->
<script
src="/Desktopmodules/SharedLibrary/Plugins/DVIDSAnalytics/DVIDSVideoAnalytics.min.js?cdv=2020"
type="text/javascript"
></script>
<script
type="text/javascript"
src="/DesktopModules/DVIDSVideoPlayer/Components/analyticsParamsForDVIDSAnalyticsAPI.js"
></script>
<script src="/desktopmodules/sharedlibrary/validatedplugins/hls.js/hls.js"></script>
<script>
(() => {
const app = document.querySelector("#aaro");
if (!app) return;
if (app.dataset.aaroScriptInitialized === "true") return;
app.dataset.aaroScriptInitialized = "true";
const csvUrl = "/Portals/1/Interactive/2026/UFO/uap-data.csv";
const thumbs = Array.from(app.querySelectorAll(".thumb[data-lightbox-index]"));
const dots = Array.from(app.querySelectorAll("[data-carousel-target]"));
const carouselField = app.querySelector(".evidence-field");
const carouselTrack = app.querySelector(".carousel-track");
const prevButton = app.querySelector("[data-carousel-prev]");
const nextButton = app.querySelector("[data-carousel-next]");
const lightbox = document.getElementById("evidence-lightbox");
const lightboxImage = document.getElementById("lightbox-image");
const lightboxCaption = document.getElementById("lightbox-caption");
const closeButton = document.querySelector("[data-lightbox-close]");
const lightboxPrev = document.querySelector("[data-lightbox-prev]");
const lightboxNext = document.querySelector("[data-lightbox-next]");
const recordList = app.querySelector("#recordList, .record-list");
const recordCount = app.querySelector("#recordCount");
const recordModal = document.getElementById("record-modal");
const recordModalShell = document.querySelector("[data-record-modal-shell]");
const recordModalAgency = document.querySelector("[data-record-modal-agency]");
const recordModalTitle = document.querySelector("[data-record-modal-title]");
const recordModalCopy = document.querySelector("[data-record-modal-copy]");
const recordModalFacts = document.querySelector("[data-record-modal-facts]");
const recordModalMedia = document.querySelector("[data-record-modal-media]");
const recordModalDownload = document.querySelector("[data-record-modal-download]");
const recordModalClose = document.querySelector("[data-record-modal-close]");
const recordPagination = app.querySelector("#recordPagination");
let allRecords = [];
let releaseLabels = {};
let filteredRecords = [];
let currentRecordPage = 1;
const recordsPerPage = 10;
let playedVideos = [];
let currentSortField = "";
let currentSortDirection = "asc";
let activeIndex = 0;
let lastFocus = null;
let autoTimer = null;
let _closingFromPopstate = false;
const autoDelay = 2600;
const allowAuto = !window.matchMedia("(prefers-reduced-motion: reduce)").matches;
function parseCSV(csvText) {
const rows = [];
let row = [];
let cell = "";
let insideQuotes = false;
for (let i = 0; i < csvText.length; i++) {
const char = csvText[i];
const nextChar = csvText[i + 1];
if (char === '"' && insideQuotes && nextChar === '"') {
cell += '"';
i++;
} else if (char === '"') {
insideQuotes = !insideQuotes;
} else if (char === "," && !insideQuotes) {
row.push(cell.trim());
cell = "";
} else if ((char === "\n" || char === "\r") && !insideQuotes) {
if (cell || row.length) {
row.push(cell.trim());
rows.push(row);
row = [];
cell = "";
}
if (char === "\r" && nextChar === "\n") i++;
} else {
cell += char;
}
}
if (cell || row.length) {
row.push(cell.trim());
rows.push(row);
}
return rows;
}
function escapeHtml(value) {
return String(value || "").replace(/[&<>"']/g, (char) => {
return {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
}[char];
});
}
function titleToHash(title) {
return String(title || "")
.trim()
.replace(/\s+/g, "-")
.replace(/[^A-Za-z0-9\-_]/g, "")
.replace(/-+/g, "-");
}
function getFileType(url) {
if (!url) return ".pdf";
const cleanUrl = String(url).split("?")[0].trim();
const match = cleanUrl.match(/\.[a-z0-9]+$/i);
return match ? match[0].toLowerCase() : ".pdf";
}
function normalizeType(type) {
if (!type) return ".pdf";
const cleanType = String(type).trim().toLowerCase();
return cleanType.startsWith(".") ? cleanType : "." + cleanType;
}
function getRecordKind(fileType) {
return String(fileType || ".pdf")
.replace(".", "")
.toLowerCase();
}
function isVideo(fileType) {
return [".mp4", ".webm", ".ogg", ".mov"].includes(fileType);
}
function isImage(fileType) {
return [".jpg", ".jpeg", ".png", ".gif", ".webp", ".img"].includes(fileType);
}
function getDocumentType(type) {
if (!type) return "pdf";
const first = String(type).trim()[0].toUpperCase();
if (first === "V") return "video";
if (first === "I") return "image";
return "pdf";
}
function renderRecordFacts(record) {
const virinHtml =
record.virin && record.virin.trim()
? `
<div class="record-modal-fact">
<dt>VIRIN</dt>
<dd>[${escapeHtml(record.virin)}]</dd>
</div>
`
: "";
return `
<div class="record-modal-fact">
<dt>Asset File Name</dt>
<dd>[${escapeHtml(record.title)}]</dd>
</div>
<div class="record-modal-fact">
<dt>Release Date</dt>
<dd>[${escapeHtml(record.releaseDate)}]</dd>
</div>
<div class="record-modal-fact">
<dt>Agency</dt>
<dd>[${escapeHtml(record.agency)}]</dd>
</div>
<div class="record-modal-fact">
<dt>Incident Date</dt>
<dd>[${escapeHtml(record.incidentDate)}]</dd>
</div>
<div class="record-modal-fact">
<dt>Incident Location</dt>
<dd>[${escapeHtml(record.incidentLocation)}]</dd>
</div>
<div class="record-modal-fact">
<dt>Document Type</dt>
<dd>[${escapeHtml(record.fileType)}]</dd>
</div>
${virinHtml}
`;
}
function renderVideoMedia(record) {
const videoIds = record.videoUrl
? record.videoUrl
.split("|")
.map(function (s) {
return s.trim();
})
.filter(Boolean)
: [];
if (!videoIds.length) {
return `
<div class="record-video-preview" aria-label="Video footage preview">
<span class="record-video-play">Video unavailable</span>
</div>
`;
}
const thumbsHtml =
videoIds.length > 1
? '<div class="record-thumbs" aria-label="Video thumbnails"></div>'
: "";
const firstImageUrl = record.imageUrl ? record.imageUrl.split("|")[0].trim() : "";
const posterAttr = firstImageUrl ? ` poster="${escapeHtml(firstImageUrl)}"` : "";
return `
<div class="record-video-preview" aria-label="Video footage preview">
<span class="record-corner record-corner-top-left" aria-hidden="true"></span>
<span class="record-corner record-corner-top-right" aria-hidden="true"></span>
<span class="record-corner record-corner-bottom-left" aria-hidden="true"></span>
<span class="record-corner record-corner-bottom-right" aria-hidden="true"></span>
<span class="record-video-play">Play footage</span>
<video controls="" crossorigin="anonymous" id="record-video-player" playsinline=""${posterAttr}
style="position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1;"> </video>
</div>
${thumbsHtml}
`;
}
function renderImageMedia(record) {
const imageUrls = record.imageUrl
? record.imageUrl
.split("|")
.map(function (s) {
return s.trim();
})
.filter(Boolean)
: [];
if (!imageUrls.length) {
return `
<div class="record-image-preview" aria-label="Image preview">
<span class="record-image-label">Image unavailable</span>
</div>
`;
}
const thumbsHtml =
imageUrls.length > 1
? '<div class="record-thumbs" aria-label="Image thumbnails"></div>'
: "";
return `
<div class="record-image-preview" aria-label="Image preview">
<img id="record-main-image"
src="${escapeHtml(imageUrls[0])}"
alt="${escapeHtml(record.altText || record.title)}"
style="position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;">
</div>
${thumbsHtml}
`;
}
function renderPdfMedia(record) {
if (record.imageUrl) {
return renderImageMedia(record);
}
return `
<div class="record-pdf-preview" aria-label="PDF preview">
<div class="record-pdf-clearance">CLEARED<br>For Open Publication<br>${escapeHtml(record.releaseDate)}</div>
<div class="record-pdf-seal">${escapeHtml(record.agency.charAt(0) || "R")}</div>
<p class="record-pdf-agency">${escapeHtml(record.agency)}</p>
<p class="record-pdf-title">${escapeHtml(record.title)}</p>
<p class="record-pdf-page">1</p>
</div>
`;
}
function renderRecordMedia(record) {
const docType = getDocumentType(record.documentType);
if (docType === "video") return renderVideoMedia(record);
if (docType === "image") return renderImageMedia(record);
return renderPdfMedia(record);
}
function hydrateRecordModal(record) {
if (
!recordModal ||
!recordModalShell ||
!recordModalTitle ||
!recordModalCopy ||
!recordModalFacts ||
!recordModalMedia ||
!recordModalDownload
) {
return;
}
recordModal.dataset.recordKind = record.kind;
recordModalShell.dataset.recordKind = record.kind;
if (recordModalAgency) {
recordModalAgency.textContent = `[${record.agency || "AARO"}]`;
}
recordModalTitle.textContent =
record.title || record.assetFileName || "Record detail";
const descriptionHtml = record.description
? record.description.replace(/[\r\n]+/g, "<br/><br/>")
: "";
const redactedSentence =
record.redacted && record.redacted.trim()
? `<p class="record-modal-redacted">Redactions have been made to protect the identity of eyewitnesses, the location of government facilities, or potentially sensitive information about military sites not related to UAP. No redactions have been made to any files released under President Trump's directive concerning information about the nature or existence of any encounter reported as a UAP or related phenomena.</p>`
: "";
recordModalCopy.innerHTML = `
<p>${descriptionHtml}</p>
${redactedSentence}
`;
recordModalFacts.innerHTML = renderRecordFacts(record);
recordModalMedia.innerHTML = renderRecordMedia(record);
recordModalMedia.insertAdjacentHTML(
"beforeend",
'<div class="record-related-media" data-record-related-media="" hidden></div>'
);
const _docType = getDocumentType(record.documentType);
const _videoIds = record.videoUrl
? record.videoUrl
.split("|")
.map(function (s) {
return s.trim();
})
.filter(Boolean)
: [];
const _imageUrls = record.imageUrl
? record.imageUrl
.split("|")
.map(function (s) {
return s.trim();
})
.filter(Boolean)
: [];
if (_docType === "video") {
recordModalDownload.disabled = true;
recordModalDownload.textContent = "Download Video";
recordModalDownload.setAttribute("aria-label", "Preparing download...");
recordModalDownload.onclick = null;
if (typeof initVideoPlayer === "function") {
initVideoPlayer(_videoIds);
}
} else if (_docType === "image") {
const _dlUrl = record.documentUrl || _imageUrls[0] || null;
recordModalDownload.disabled = !_dlUrl;
recordModalDownload.textContent = "Download Image";
recordModalDownload.setAttribute(
"aria-label",
_dlUrl ? `Download ${record.title}` : "Download unavailable"
);
recordModalDownload.onclick = _dlUrl
? function () {
window.open(_dlUrl, "_blank", "noopener");
}
: null;
if (_imageUrls.length > 1 && typeof buildImageThumbs === "function") {
buildImageThumbs(_imageUrls);
}
} else {
const _dlUrl = record.documentUrl || null;
recordModalDownload.disabled = !_dlUrl;
recordModalDownload.textContent = "Download";
recordModalDownload.setAttribute(
"aria-label",
_dlUrl ? `Download ${record.title}` : "Download unavailable"
);
recordModalDownload.onclick = _dlUrl
? function () {
window.open(_dlUrl, "_blank", "noopener");
}
: null;
}
buildRelatedMedia(record);
}
function openRecordModal(record) {
if (!recordModal || !recordModalClose) return;
stopAuto();
hydrateRecordModal(record);
lastFocus = document.activeElement;
recordModal.hidden = false;
document.body.classList.add("lightbox-open");
recordModalClose.focus();
// GA4
history.pushState(null, "", "#" + titleToHash(record.title));
console.log("click1 " + (typeof gas4 === "function"));
if (typeof gas4 === "function") {
gas4("page_view", {
page_location: "/UFOTrack/",
page_title: record.title
});
}
// END GA4
}
function closeRecordModal() {
if (!recordModal || recordModal.hidden) return;
const video = recordModal.querySelector("video");
if (video) video.pause();
recordModal.hidden = true;
document.body.classList.remove("lightbox-open");
restartAuto();
if (!_closingFromPopstate) {
history.replaceState(null, "", location.pathname + location.search);
}
if (lastFocus && typeof lastFocus.focus === "function") {
lastFocus.focus();
}
}
function buildReleaseLabels() {
const dates = [...new Set(
allRecords
.map(function (record) {
return record.releaseDate;
})
.filter(Boolean)
)];
dates.sort(function (a, b) {
return new Date(a) - new Date(b);
});
releaseLabels = {};
dates.forEach(function (date, index) {
releaseLabels[date] = `Release ${String(index + 1).padStart(2, "0")}`;
});
}
function getReleaseLabel(date) {
return releaseLabels[date] ? `${date} - ${releaseLabels[date]}` : date;
}
function renderRecordRows(records, page = 1) {
if (!recordList) return;
currentRecordPage = page;
recordList.innerHTML = "";
const start = (currentRecordPage - 1) * recordsPerPage;
const end = start + recordsPerPage;
const pagedRecords = records.slice(start, end);
pagedRecords.forEach((record, index) => {
const row = document.createElement("button");
row.className = "record-row";
row.type = "button";
row.dataset.recordTrigger = "";
row.dataset.recordId = `record-${String(start + index + 1).padStart(3, "0")}`;
row.innerHTML = `
<span class="record-title">${escapeHtml(record.title)}</span>
<span class="record-meta">[${escapeHtml(record.agency)}]</span>
<span class="record-meta">[${escapeHtml(getReleaseLabel(record.releaseDate))}]</span>
<span class="record-meta">[${escapeHtml(record.incidentDate)}]</span>
<span class="record-meta">[${escapeHtml(record.incidentLocation)}]</span>
<span class="record-meta">[${escapeHtml(record.fileType)}]</span>
<span class="row-arrow" aria-hidden="true"></span>
`;
row.addEventListener("click", () => {
openRecordModal(record);
});
recordList.appendChild(row);
});
renderRecordPagination(records);
}
function getPaginationRange(currentPage, totalPages) {
const isMobile = window.matchMedia("(max-width: 767px)").matches;
const isTablet = window.matchMedia("(max-width: 1024px)").matches;
const siblingCount = isMobile ? 0 : isTablet ? 1 : 2;
const pages = [];
const startPage = Math.max(2, currentPage - siblingCount);
const endPage = Math.min(totalPages - 1, currentPage + siblingCount);
pages.push(1);
if (startPage > 2) pages.push("...");
for (let i = startPage; i <= endPage; i++) {
pages.push(i);
}
if (endPage < totalPages - 1) pages.push("...");
if (totalPages > 1) pages.push(totalPages);
return pages;
}
function renderRecordPagination(records) {
if (!recordPagination) return;
const totalPages = Math.ceil(records.length / recordsPerPage);
recordPagination.innerHTML = "";
if (totalPages <= 1) return;
const prevButton = document.createElement("button");
prevButton.type = "button";
prevButton.className = "pagination-button pagination-prev";
prevButton.textContent = "Prev";
prevButton.disabled = currentRecordPage === 1;
prevButton.addEventListener("click", () => {
if (currentRecordPage > 1) {
renderRecordRows(records, currentRecordPage - 1);
}
});
recordPagination.appendChild(prevButton);
getPaginationRange(currentRecordPage, totalPages).forEach((page) => {
if (page === "...") {
const dots = document.createElement("span");
dots.className = "pagination-ellipsis";
dots.textContent = "...";
recordPagination.appendChild(dots);
return;
}
const pageButton = document.createElement("button");
pageButton.type = "button";
pageButton.className = "pagination-button";
pageButton.textContent = page;
if (page === currentRecordPage) {
pageButton.classList.add("is-active");
pageButton.setAttribute("aria-current", "page");
}
pageButton.addEventListener("click", () => {
renderRecordRows(records, page);
});
recordPagination.appendChild(pageButton);
});
const nextButton = document.createElement("button");
nextButton.type = "button";
nextButton.className = "pagination-button pagination-next";
nextButton.textContent = "Next";
nextButton.disabled = currentRecordPage === totalPages;
nextButton.addEventListener("click", () => {
if (currentRecordPage < totalPages) {
renderRecordRows(records, currentRecordPage + 1);
}
});
recordPagination.appendChild(nextButton);
}
function loadRecordsFromCSV() {
if (!recordList) return;
fetch(csvUrl)
.then((response) => response.text())
.then((csv) => {
const rows = parseCSV(csv);
const cleanHeader = (value) =>
String(value || "")
.replace(/^\uFEFF/, "")
.trim()
.toLowerCase();
const headers = rows[0].map(cleanHeader);
const get = (cols, name) => {
const index = headers.indexOf(cleanHeader(name));
return index >= 0 ? cols[index] || "" : "";
};
allRecords = rows.slice(1).map((cols) => {
const redacted = get(cols, "Redaction");
const releaseDate = get(cols, "Release Date");
const title = get(cols, "Title").trim();
const documentType = get(cols, "Type");
const videoPairing = get(cols, "Video pairing");
const pdfPairing = get(cols, "PDF PAiring");
const description = get(cols, "Description Blurb");
const videoUrl = get(cols, "DVIDS Video ID");
const agency = get(cols, "Agency");
const incidentDate = get(cols, "Incident Date");
const incidentLocation = get(cols, "Incident Location") || "N/A";
const documentUrl = get(cols, "PDF | Image Link");
const imageUrl = get(cols, "Modal Image");
const altText = get(cols, "Image Alt Text");
const virin = get(cols, "Image VIRIN");
const fileType = documentType
? normalizeType(documentType)
: getFileType(documentUrl || imageUrl || videoUrl);
const kind = getRecordKind(fileType);
return {
redacted,
releaseDate,
title,
documentType,
videoPairing,
pdfPairing,
description,
videoUrl,
agency,
incidentDate,
incidentLocation,
documentUrl,
imageUrl,
fileType,
kind,
altText,
virin,
};
});
if (recordCount) {
recordCount.textContent = allRecords.length;
}
buildReleaseLabels();
filteredRecords = allRecords;
populateRecordFilters();
applyFiltersFromUrl();
const initialHash = location.hash.slice(1);
if (initialHash) {
const matched = allRecords.find(function (r) {
return titleToHash(r.title) === initialHash;
});
if (matched && recordModal && recordModalClose) {
stopAuto();
hydrateRecordModal(matched);
lastFocus = null;
recordModal.hidden = false;
document.body.classList.add("lightbox-open");
recordModalClose.focus();
}
}
})
.catch((error) => {
console.error("CSV could not be loaded:", error);
});
}
function applyFiltersFromUrl() {
const params = new URLSearchParams(window.location.search);
activeFilters.agency = params.get("agency") || "";
activeFilters.releaseDate = params.get("releaseDate") || "";
activeFilters.type = params.get("type") || "";
if (recordSearch && params.get("search")) {
recordSearch.value = params.get("search");
}
document.querySelectorAll(".custom-filter").forEach(function (filter) {
const filterName = filter.dataset.filter;
const button = filter.querySelector(".custom-filter-button");
if (!button) return;
if (activeFilters[filterName]) {
button.textContent = activeFilters[filterName];
}
});
applyRecordFilters();
}
const recordSearch = document.getElementById("recordSearch");
const recordSearchClear = document.getElementById("recordSearchClear");
let activeFilters = {
agency: "",
releaseDate: "",
type: ""
};
function populateRecordFilters() {
buildCustomFilter("agency", "All Agencies", [...new Set(allRecords.map(r => r.agency).filter(Boolean))].sort());
buildCustomFilter(
"releaseDate",
"All Releases",
[...new Set(
allRecords
.map(function (r) {
return releaseLabels[r.releaseDate];
})
.filter(Boolean)
)]
);
buildCustomFilter("type", "All Types", [...new Set(allRecords.map(r => r.fileType).filter(Boolean))].sort());
}
function buildCustomFilter(filterName, defaultLabel, values) {
const filter = document.querySelector(`[data-filter="${filterName}"]`);
if (!filter) return;
const button = filter.querySelector(".custom-filter-button");
const menu = filter.querySelector(".custom-filter-menu");
menu.innerHTML = "";
const allOption = document.createElement("button");
allOption.type = "button";
allOption.className = "custom-filter-option";
allOption.textContent = defaultLabel;
allOption.dataset.value = "";
menu.appendChild(allOption);
values.forEach(function (value) {
const option = document.createElement("button");
option.type = "button";
option.className = "custom-filter-option";
option.textContent = value;
option.dataset.value = value;
menu.appendChild(option);
});
button.textContent = activeFilters[filterName] || defaultLabel;
button.onclick = function () {
document.querySelectorAll(".custom-filter").forEach(function (el) {
if (el !== filter) el.classList.remove("is-open");
});
filter.classList.toggle("is-open");
};
menu.querySelectorAll(".custom-filter-option").forEach(function (option) {
option.addEventListener("click", function () {
activeFilters[filterName] = this.dataset.value;
button.textContent = this.dataset.value || defaultLabel;
filter.classList.remove("is-open");
applyRecordFilters();
});
});
}
function applyRecordFilters() {
const query = recordSearch ? recordSearch.value.trim().toLowerCase() : "";
filteredRecords = allRecords.filter(function (record) {
const matchesSearch =
!query ||
String(record.title || "").toLowerCase().includes(query) ||
String(record.agency || "").toLowerCase().includes(query) ||
String(record.incidentLocation || "").toLowerCase().includes(query) ||
String(record.incidentDate || "").toLowerCase().includes(query) ||
String(record.releaseDate || "").toLowerCase().includes(query) ||
String(record.description || "").toLowerCase().includes(query);
const matchesAgency = !activeFilters.agency || record.agency === activeFilters.agency;
const matchesReleaseDate =
!activeFilters.releaseDate ||
releaseLabels[record.releaseDate] === activeFilters.releaseDate;
const matchesType = !activeFilters.type || record.fileType === activeFilters.type;
return matchesSearch && matchesAgency && matchesReleaseDate && matchesType;
});
if (recordCount) {
recordCount.textContent = filteredRecords.length;
}
renderRecordRows(filteredRecords, 1);
updateFilterUrl();
if (recordSearchClear && recordSearch) {
recordSearchClear.classList.toggle("is-visible", !!query);
}
}
function updateFilterUrl() {
const params = new URLSearchParams(window.location.search);
["agency", "releaseDate", "type"].forEach(function (key) {
if (activeFilters[key]) {
params.set(key, activeFilters[key]);
} else {
params.delete(key);
}
});
const query = recordSearch ? recordSearch.value.trim() : "";
if (query) {
params.set("search", query);
} else {
params.delete("search");
}
const queryString = params.toString();
const newUrl =
location.pathname +
(queryString ? "?" + queryString : "") +
location.hash;
history.replaceState(null, "", newUrl);
}
if (recordSearch) {
recordSearch.addEventListener("input", applyRecordFilters);
}
if (recordSearchClear && recordSearch) {
recordSearchClear.addEventListener("click", function () {
recordSearch.value = "";
applyRecordFilters();
recordSearch.focus();
});
}
document.addEventListener("click", function (e) {
if (!e.target.closest(".custom-filter")) {
document.querySelectorAll(".custom-filter").forEach(function (filter) {
filter.classList.remove("is-open");
});
}
});
const wrapIndex = (index) => {
return (index + thumbs.length) % thumbs.length;
};
const getCaption = (index) => {
const thumb = thumbs[index];
const image = thumb?.querySelector("img");
const title = thumb?.dataset.lightboxTitle || image?.alt || "Evidence photo";
const sentence = thumb?.dataset.lightboxSentence || "";
return {title, sentence};
};
const carouselSlot = (index, activeIdx) => {
const len = thumbs.length;
let d = index - activeIdx;
if (d > len / 2) d -= len;
if (d < -len / 2) d += len;
return d;
};
const layoutCarouselOrder = () => {
thumbs.forEach((thumb, index) => {
const slot = carouselSlot(index, activeIndex);
thumb.style.order = String(slot + thumbs.length);
});
};
const syncTrackPaddingAndScroll = (behavior) => {
if (!carouselField || !carouselTrack || !thumbs.length) return;
const fieldRect = carouselField.getBoundingClientRect();
if (fieldRect.bottom <= 0 || fieldRect.top >= window.innerHeight) return;
const el = thumbs[activeIndex];
const cw = carouselField.clientWidth;
const ew = el.getBoundingClientRect().width;
const pad = Math.max(0, (cw - ew) / 2);
carouselTrack.style.paddingLeft = `${pad}px`;
carouselTrack.style.paddingRight = `${pad}px`;
void carouselField.offsetHeight;
const elRect = el.getBoundingClientRect();
const fieldRect2 = carouselField.getBoundingClientRect();
const elCenter = elRect.left + elRect.width / 2;
const fieldCenter = fieldRect2.left + fieldRect2.width / 2;
const delta = elCenter - fieldCenter;
const maxScroll = Math.max(
0,
carouselField.scrollWidth - carouselField.clientWidth
);
const next = carouselField.scrollLeft + delta;
const left = Math.min(Math.max(0, next), maxScroll);
carouselField.scrollTo({
left,
behavior: behavior === "smooth" ? "smooth" : "auto",
});
};
const syncActiveCenter = () => {
requestAnimationFrame(() => {
syncTrackPaddingAndScroll("auto");
});
};
const setActive = (index) => {
if (!thumbs.length) return;
activeIndex = wrapIndex(index);
thumbs.forEach((thumb, thumbIndex) => {
const isActive = thumbIndex === activeIndex;
thumb.classList.toggle("is-active", isActive);
thumb.setAttribute("aria-pressed", isActive ? "true" : "false");
});
dots.forEach((dot, dotIndex) => {
const isActive = dotIndex === activeIndex;
dot.classList.toggle("is-active", isActive);
dot.setAttribute("aria-current", isActive ? "true" : "false");
});
layoutCarouselOrder();
syncActiveCenter();
};
const hydrateLightbox = () => {
if (!thumbs.length || !lightboxImage || !lightboxCaption) return;
const image = thumbs[activeIndex].querySelector("img");
if (!image) return;
lightboxImage.src = image.src;
lightboxImage.alt = image.alt;
const caption = getCaption(activeIndex);
const recordUrl =
thumbs[activeIndex]?.dataset.lightboxUrl || "#";
lightboxCaption.innerHTML = `
<strong>
<a href="${escapeHtml(recordUrl)}"
class="lightbox-title-link">
${escapeHtml(caption.title)}
</a>
</strong>
${caption.sentence ? `<span>${escapeHtml(caption.sentence)}</span>` : ""}
`;
};
const openLightbox = (index) => {
if (!lightbox) return;
stopAuto();
setActive(index);
hydrateLightbox();
lastFocus = document.activeElement;
lightbox.hidden = false;
document.body.classList.add("lightbox-open");
closeButton?.focus();
};
const closeLightbox = () => {
if (!lightbox) return;
lightbox.hidden = true;
document.body.classList.remove("lightbox-open");
restartAuto();
if (lastFocus && typeof lastFocus.focus === "function") {
lastFocus.focus();
}
};
const advance = (direction) => {
setActive(activeIndex + direction);
if (lightbox && !lightbox.hidden) {
hydrateLightbox();
}
};
function stopAuto() {
if (autoTimer) {
window.clearInterval(autoTimer);
autoTimer = null;
}
}
function startAuto() {
if (!allowAuto || autoTimer || (recordModal && !recordModal.hidden)) return;
autoTimer = window.setInterval(() => {
if (
document.hidden ||
(lightbox && !lightbox.hidden) ||
(recordModal && !recordModal.hidden)
)
return;
advance(1);
}, autoDelay);
}
function restartAuto() {
stopAuto();
startAuto();
}
thumbs.forEach((thumb, index) => {
thumb.addEventListener("click", () => {
openLightbox(index);
});
});
dots.forEach((dot, index) => {
dot.addEventListener("click", () => {
setActive(index);
restartAuto();
});
});
prevButton?.addEventListener("click", () => {
advance(-1);
restartAuto();
});
nextButton?.addEventListener("click", () => {
advance(1);
restartAuto();
});
closeButton?.addEventListener("click", closeLightbox);
recordModalClose?.addEventListener("click", closeRecordModal);
lightboxPrev?.addEventListener("click", () => {
advance(-1);
});
lightboxNext?.addEventListener("click", () => {
advance(1);
});
lightbox?.addEventListener("click", (event) => {
if (event.target === lightbox) closeLightbox();
});
recordModal?.addEventListener("click", (event) => {
if (event.target === recordModal) closeRecordModal();
});
document.addEventListener("keydown", (event) => {
const isLightboxOpen = lightbox ? !lightbox.hidden : false;
const isRecordModalOpen = recordModal ? !recordModal.hidden : false;
if (!isLightboxOpen && !isRecordModalOpen) return;
if (event.key === "Escape") {
if (isRecordModalOpen) {
closeRecordModal();
} else {
closeLightbox();
}
return;
}
if (!isLightboxOpen) return;
if (event.key === "ArrowLeft") advance(-1);
if (event.key === "ArrowRight") advance(1);
});
carouselField?.addEventListener("mouseenter", stopAuto);
carouselField?.addEventListener("mouseleave", startAuto);
carouselField?.addEventListener("focusin", stopAuto);
carouselField?.addEventListener("focusout", startAuto);
document.addEventListener("visibilitychange", () => {
if (document.hidden) {
stopAuto();
} else {
startAuto();
}
});
window.addEventListener("resize", () => {
syncTrackPaddingAndScroll("auto");
});
window.addEventListener("popstate", function () {
const hash = location.hash.slice(1);
if (hash) {
const matched = allRecords.find(function (r) {
return titleToHash(r.title) === hash;
});
if (matched && recordModal && recordModalClose) {
stopAuto();
hydrateRecordModal(matched);
lastFocus = document.activeElement;
recordModal.hidden = false;
document.body.classList.add("lightbox-open");
recordModalClose.focus();
}
} else {
_closingFromPopstate = true;
closeRecordModal();
_closingFromPopstate = false;
}
});
if (
thumbs.length &&
lightbox &&
lightboxImage &&
lightboxCaption &&
carouselField &&
carouselTrack
) {
setActive(0);
startAuto();
}
loadRecordsFromCSV();
app.querySelectorAll("[data-sort-field]").forEach((button) => {
button.addEventListener("click", () => {
const field = button.dataset.sortField;
app.querySelectorAll("[data-sort-field]").forEach((btn) => {
btn.classList.remove("is-active-sort", "is-sort-asc", "is-sort-desc");
});
button.classList.add("is-active-sort");
button.classList.add(
currentSortField === field && currentSortDirection === "asc"
? "is-sort-desc"
: "is-sort-asc"
);
sortRecords(filteredRecords, field);
});
});
// DVIDS video loading
const VIDEO_ID = 1005876;
const DVIDS_API_KEY = "key-68bb60d16b35e";
function escapeVideoHtml(v) {
return String(v).replace(/[&<>"']/g, function (c) {
return {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
}[c];
});
}
function formatDuration(secs) {
if (secs == null || isNaN(Number(secs))) return "-";
secs = Math.floor(Number(secs));
const h = Math.floor(secs / 3600);
const m = Math.floor((secs % 3600) / 60);
const s = secs % 60;
return (
String(h).padStart(2, "0") +
":" +
String(m).padStart(2, "0") +
":" +
String(s).padStart(2, "0")
);
}
function formatDate(iso) {
if (!iso) return "-";
const d = new Date(iso);
if (isNaN(d.getTime())) return "-";
return d.toISOString().slice(0, 10);
}
async function loadVideo(videoId, autoplay) {
const videoElement = document.getElementById("record-video-player");
if (!videoElement) return;
ANALYTICSLIBRARY.init([videoId, "66"]);
ANALYTICSLIBRARY.loadAnalyticsParam();
const apiEndpoint = `https://api.dvidshub.net/asset?api_key=${DVIDS_API_KEY}&id=video:${videoId}&thumb_width=720`;
try {
const response = await fetch(apiEndpoint, {method: "GET"});
if (!response.ok) {
console.log(response.status);
return;
}
const json = await response.json();
const d = json.results || json.data || json;
videoElement.innerHTML = "";
videoElement.crossOrigin = "anonymous";
if (autoplay) videoElement.removeAttribute("poster");
if (d.hls_url) {
if (Hls.isSupported()) {
var hls = new Hls();
hls.loadSource(d.hls_url);
hls.attachMedia(videoElement);
} else if (videoElement.canPlayType("application/vnd.apple.mpegurl")) {
videoElement.src = d.hls_url;
}
}
if (d.closed_caption_urls && d.closed_caption_urls.webvtt) {
const track = document.createElement("track");
track.kind = "subtitles";
track.label = "English";
track.srclang = "en";
track.src = d.closed_caption_urls.webvtt;
track.default = true;
videoElement.appendChild(track);
}
videoElement.load();
if (autoplay) videoElement.play();
if (!autoplay) {
const downloadBtn = document.querySelector("[data-record-modal-download]");
if (downloadBtn && d.files) {
const highestMp4 = d.files
.filter(function (f) {
return f.type === "video/mp4";
})
.sort(function (a, b) {
return b.height - a.height;
})[0];
if (highestMp4) {
downloadBtn.removeAttribute("disabled");
downloadBtn.onclick = null;
downloadBtn.onclick = async function () {
try {
// Fetching as a blob "tricks" the browser into thinking the file is local
const response = await fetch(highestMp4.src);
const blob = await response.blob();
const url = window.URL.createObjectURL(blob);
const filename = highestMp4.src.split("/").pop();
const a = document.createElement("a");
a.style.display = "none";
a.href = url;
a.download = filename; // This will now be honored
document.body.appendChild(a);
a.click();
// GA4 TRACKING
if (typeof gas4 === "function") {
gas4("file_download", {
file_extension: "mp4",
file_name: d.title,
link_url: highestMp4.src
});
}
// END GA4 TRACKING
// Cleanup memory
window.URL.revokeObjectURL(url);
document.body.removeChild(a);
} catch (e) {
console.log(e);
// Backup: If something goes wrong, open in new tab
window.open(highestMp4.src, "_blank");
}
};
}
}
const factsEl = document.querySelector("[data-record-modal-facts]");
if (factsEl) {
const facts = [
["Date Taken", formatDate(d.date)],
["Date Posted", formatDate(d.date_published)],
["Category", d.category || "-"],
["Length", formatDuration(d.duration)],
["Location", (d.location && d.location.country_abbreviation) || "-"],
];
factsEl.innerHTML = facts
.map(function (pair) {
return (
'<div class="record-modal-fact"><dt>' +
escapeVideoHtml(pair[0]) +
"</dt><dd>[" +
escapeVideoHtml(pair[1]) +
"]</dd></div>"
);
})
.join("");
}
}
} catch (error) {
console.error("Failed to load video " + videoId + ":", error);
}
}
function attachVideoControls() {
const preview = document.querySelector(".record-video-preview");
const video = document.getElementById("record-video-player");
if (!preview || !video) return;
video.addEventListener("play", function () {
preview.classList.add("is-playing");
preview.classList.remove("is-paused");
});
video.addEventListener("playing", function (e) {
if (!playedVideos.includes(analyticsParams.type_id)) {
playedVideos.push(analyticsParams.type_id);
DVIDSVideoAnalytics.track("play", analyticsParams);
}
});
video.addEventListener("pause", function () {
preview.classList.remove("is-playing");
preview.classList.add("is-paused");
});
video.addEventListener("ended", function () {
preview.classList.remove("is-playing");
preview.classList.add("is-paused");
DVIDSVideoAnalytics.track("ended", analyticsParams);
});
preview.addEventListener("click", function (e) {
if (e.target.closest("video")) return;
if (video.paused) {
video.play();
} else {
video.pause();
}
});
}
function initVideoPlayer(videoIds) {
if (!videoIds || !videoIds.length) return;
loadVideo(videoIds[0]);
attachVideoControls(videoIds[0]);
if (videoIds.length > 1 && typeof buildVideoThumbs === "function")
buildVideoThumbs(videoIds);
}
function sortRecords(records, field) {
const recordsToSort = records || allRecords;
if (currentSortField === field) {
currentSortDirection = currentSortDirection === "asc" ? "desc" : "asc";
} else {
currentSortField = field;
currentSortDirection = "asc";
}
recordsToSort.sort((a, b) => {
let aValue = a[field] || "";
let bValue = b[field] || "";
if (field === "releaseDate" || field === "incidentDate") {
aValue = new Date(aValue);
bValue = new Date(bValue);
if (isNaN(aValue)) aValue = new Date(0);
if (isNaN(bValue)) bValue = new Date(0);
} else {
aValue = String(aValue).toLowerCase();
bValue = String(bValue).toLowerCase();
}
if (aValue < bValue) return currentSortDirection === "asc" ? -1 : 1;
if (aValue > bValue) return currentSortDirection === "asc" ? 1 : -1;
return 0;
});
renderRecordRows(recordsToSort, 1);
}
function setActiveThumb(identifier) {
document.querySelectorAll(".record-thumb[data-thumb-id]").forEach(function (el) {
el.classList.toggle("is-active", el.dataset.thumbId === String(identifier));
});
}
async function fetchVideoMeta(videoId) {
const url = `https://api.dvidshub.net/asset?api_key=${DVIDS_API_KEY}&id=video:${videoId}&thumb_width=400`;
const response = await fetch(url);
if (!response.ok) return null;
const json = await response.json();
return json.results || json.data || json;
}
async function buildVideoThumbs(videoIds) {
const container = document.querySelector(".record-thumbs");
if (!container) return;
container.innerHTML = "";
const metas = await Promise.all(videoIds.map(fetchVideoMeta));
metas.forEach(function (data, i) {
if (!data) return;
const thumbUrl = data.thumbnail && data.thumbnail.url ? data.thumbnail.url : "";
const videoId = videoIds[i];
const item = document.createElement("span");
item.className = "record-thumb";
item.dataset.thumbId = String(videoId);
if (thumbUrl) {
const img = document.createElement("img");
img.src = thumbUrl;
img.alt = "";
img.style.cssText =
"position:absolute;inset:0;width:100%;height:100%;object-fit:cover;";
item.appendChild(img);
}
item.addEventListener("click", function () {
setActiveThumb(videoId);
loadVideo(videoId, true);
});
container.appendChild(item);
});
setActiveThumb(videoIds[0]);
}
function buildImageThumbs(imageUrls) {
const container = document.querySelector(".record-thumbs");
if (!container) return;
container.innerHTML = "";
imageUrls.forEach(function (url, i) {
const item = document.createElement("span");
item.className = "record-thumb";
item.dataset.thumbId = String(i);
const img = document.createElement("img");
img.src = url;
img.alt = "";
img.style.cssText =
"position:absolute;inset:0;width:100%;height:100%;object-fit:cover;";
item.appendChild(img);
item.addEventListener("click", function () {
setActiveThumb(i);
const mainImg = document.getElementById("record-main-image");
if (mainImg) mainImg.src = url;
});
container.appendChild(item);
});
setActiveThumb(0);
}
async function buildRelatedMedia(record) {
var container = document.querySelector("[data-record-related-media]");
if (!container) return;
container.hidden = true;
container.innerHTML = "";
function normalizeKey(value) {
return String(value || "")
.toLowerCase()
.replace(/\s+/g, "")
.replace(/-/g, "");
}
function splitPairings(value) {
return String(value || "")
.split("|")
.map(function (s) {
return s.trim();
})
.filter(Boolean);
}
var pairingKeys = [
...splitPairings(record.videoPairing),
...splitPairings(record.pdfPairing)
];
pairingKeys = [...new Set(pairingKeys)];
var relatedItems = [];
pairingKeys.forEach(function (pairKey) {
var cleanPairKey = normalizeKey(pairKey);
allRecords.forEach(function (r) {
var cleanTitle = normalizeKey(r.title);
var cleanDocUrl = normalizeKey(r.documentUrl);
var cleanVideoUrl = normalizeKey(r.videoUrl);
var isMatch =
cleanTitle.includes(cleanPairKey) ||
cleanDocUrl.includes(cleanPairKey) ||
cleanVideoUrl === cleanPairKey;
if (isMatch && r !== record && !relatedItems.includes(r)) {
relatedItems.push(r);
}
});
});
if (!relatedItems.length) return;
container.hidden = false;
container.innerHTML =
'<h3 class="record-related-media-title">Related Media</h3>' +
'<ul class="record-related-media-list">' +
relatedItems
.map(function (item) {
return `
<li>
<a href="#"
class="record-related-media-link"
data-related-title="${escapeHtml(item.title)}">
${escapeHtml(item.title)}
<span style="opacity:.6;">[${escapeHtml(item.fileType)}]</span>
</a>
</li>
`;
})
.join("") +
"</ul>";
container.querySelectorAll("[data-related-title]").forEach(function (link) {
link.addEventListener("click", function (e) {
e.preventDefault();
var title = this.dataset.relatedTitle;
var matched = allRecords.find(function (r) {
return r.title === title;
});
if (matched) {
hydrateRecordModal(matched);
}
});
});
}
// End DVIDS video loading
})();
</script>
<script> document.addEventListener("DOMContentLoaded", function () { const tabs = document.querySelectorAll("#aaro .release-tab"); const panels = document.querySelectorAll("#aaro .release-panel"); tabs.forEach(tab => { tab.addEventListener("click", function () { const releaseId = this.dataset.release; tabs.forEach(t => { t.classList.remove("active"); t.setAttribute("aria-selected", "false"); }); panels.forEach(panel => { panel.classList.remove("active"); }); this.classList.add("active"); this.setAttribute("aria-selected", "true"); document .getElementById(`release-panel-${releaseId}`) .classList.add("active"); }); }); }); </script>
<!-- DATABASE --> <script> (function () { const app = document.querySelector("#release-table-app-2026"); if (!app) return; if (app.dataset.rtaInitialized === "true") { return; } app.dataset.rtaInitialized = "true"; const csvUrl = "https://war.dod.afpims.mil/Portals/1/SANDBOXES/BEvans/testing-doc.csv?ver=M54pSWevPDAjdCZHKWhl9g%3d%3d"; const tableSelector = "#releaseTable2026"; const modal = app.querySelector("#releaseModal2026"); const closeBtn = app.querySelector(".rta-close"); function parseCSV(csvText) { const rows = []; let row = []; let cell = ""; let insideQuotes = false; for (let i = 0; i < csvText.length; i++) { const char = csvText[i]; const nextChar = csvText[i + 1]; if (char === '"' && insideQuotes && nextChar === '"') { cell += '"'; i++; } else if (char === '"') { insideQuotes = !insideQuotes; } else if (char === "," && !insideQuotes) { row.push(cell.trim()); cell = ""; } else if ((char === "\n" || char === "\r") && !insideQuotes) { if (cell || row.length) { row.push(cell.trim()); rows.push(row); row = []; cell = ""; } if (char === "\r" && nextChar === "\n") { i++; } } else { cell += char; } } if (cell || row.length) { row.push(cell.trim()); rows.push(row); } return rows; } function isVideoFile(url) { return /\.(mp4|webm|ogg|mov)(\?.*)?$/i.test(url); } function buildSingleDocument(documentUrl) { if (!documentUrl || documentUrl.trim() === "") { return `<div class="rta-empty">No document available</div>`; } const cleanUrl = documentUrl.split("|")[0].trim(); if (isVideoFile(cleanUrl)) { return ` <video class="rta-modal-video" controls playsinline> <source src="/portals/1/${cleanUrl}"> </video> `; } return ` <a class="rta-modal-document-link" href="${cleanUrl}" target="_blank" rel="noopener"> Open Document </a> `; } function openModal(rowData) { app.querySelector(".rta-modal-title").textContent = rowData.title || ""; app.querySelector(".rta-modal-agency").textContent = rowData.agency || ""; app.querySelector(".rta-modal-date").textContent = rowData.date || ""; app.querySelector(".rta-modal-country").textContent = rowData.country || ""; app.querySelector(".rta-modal-document-content").innerHTML = buildSingleDocument(rowData.documents || ""); modal.classList.add("is-active"); } function closeModal() { const video = modal.querySelector("video"); if (video) { video.pause(); } modal.classList.remove("is-active"); } closeBtn.addEventListener("click", closeModal); modal.addEventListener("click", function (e) { if (e.target === modal) { closeModal(); } }); document.addEventListener("keydown", function (e) { if (e.key === "Escape") { closeModal(); } }); fetch(csvUrl) .then(response => response.text()) .then(csv => { const parsedRows = parseCSV(csv); const rows = parsedRows.slice(1); const rowObjects = rows.map(cols => { return { title: cols[0] || "", agency: cols[1] || "", date: cols[2] || "", country: cols[3] || "", documents: cols[4] || "" }; }); if (jQuery.fn.DataTable.isDataTable(tableSelector)) { return; } const table = jQuery(tableSelector).DataTable({ data: rowObjects, pageLength: 10, destroy: true, retrieve: true, columns: [ { data: "title" }, { data: "agency" }, { data: "date" }, { data: "country" }, { data: "documents", orderable: false, render: function (data) { if (!data || data.trim() === "") { return ""; } const cleanUrl = data.split("|")[0].trim(); const extensionMatch = cleanUrl.match(/\.([a-z0-9]+)(\?|$)/i); let extension = "FILE"; if (extensionMatch && extensionMatch[1]) { extension = extensionMatch[1].toUpperCase(); } return ` <span class="rta-table-btn"> ${extension} </span> `; } } ] }); jQuery(tableSelector + " tbody") .off("click.rtaModal") .on("click.rtaModal", "tr", function () { const rowData = table.row(this).data(); if (rowData) { openModal(rowData); } }); }) .catch(error => { console.error("CSV could not be loaded:", error); app.dataset.rtaInitialized = "false"; }); })(); </script> <!-- CLOCK --> <script>function updateESTClocks() { const now = new Date(); const estTime = now.toLocaleTimeString('en-GB', { timeZone: 'America/New_York', hour: '2-digit', minute: '2-digit', hour12: false }); document.querySelectorAll('.est-clock').forEach(clock => { clock.textContent = estTime; }); } updateESTClocks(); setInterval(updateESTClocks, 1000);</script><!-- REVEAL UP ANIMATION --> <script>const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('in-view'); observer.unobserve(entry.target); } }); }, { threshold: 0.15 }); document.querySelectorAll('.reveal-up').forEach(el => { observer.observe(el); });</script><!-- End_Module_9589 --></div>
</div><!--end of empty container -->
</div></div>
<div id="content-pane-wrap">
<div class="content-wrap">
<div id="dnn_ContentPane" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed2" class="DNNEmptyPane"></div>
<div id="content-pane-wrap2">
<div class="content-wrap">
<div id="dnn_ContentPane2" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed3" class="DNNEmptyPane"></div>
<div id="content-pane-wrap3">
<div class="content-wrap">
<div id="dnn_ContentPane3" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed4" class="DNNEmptyPane"></div>
<div id="content-pane-wrap4">
<div class="content-wrap">
<div id="dnn_ContentPane4"><div class="DnnModule DnnModule-DNN_HTML DnnModule-9590"><a name="9590"></a>
<div class="empty-container base-container">
<div id="dnn_ctr9590_ContentPane"><!-- Start_Module_9590 --><div id="dnn_ctr9590_ModuleContent" class="DNNModuleContent ModDNNHTMLC">
<div id="dnn_ctr9590_HtmlModule_lblContent" class="Normal">
<!-- DATABASE --> <script> (function () { const app = document.querySelector("#release-table-app-2026"); if (!app) return; if (app.dataset.rtaInitialized === "true") { return; } app.dataset.rtaInitialized = "true"; const csvUrl = "https://war.dod.afpims.mil/Portals/1/SANDBOXES/BEvans/testing-doc.csv?ver=M54pSWevPDAjdCZHKWhl9g%3d%3d"; const tableSelector = "#releaseTable2026"; const modal = app.querySelector("#releaseModal2026"); const closeBtn = app.querySelector(".rta-close"); function parseCSV(csvText) { const rows = []; let row = []; let cell = ""; let insideQuotes = false; for (let i = 0; i < csvText.length; i++) { const char = csvText[i]; const nextChar = csvText[i + 1]; if (char === '"' && insideQuotes && nextChar === '"') { cell += '"'; i++; } else if (char === '"') { insideQuotes = !insideQuotes; } else if (char === "," && !insideQuotes) { row.push(cell.trim()); cell = ""; } else if ((char === "\n" || char === "\r") && !insideQuotes) { if (cell || row.length) { row.push(cell.trim()); rows.push(row); row = []; cell = ""; } if (char === "\r" && nextChar === "\n") { i++; } } else { cell += char; } } if (cell || row.length) { row.push(cell.trim()); rows.push(row); } return rows; } function isVideoFile(url) { return /\.(mp4|webm|ogg|mov)(\?.*)?$/i.test(url); } function buildSingleDocument(documentUrl) { if (!documentUrl || documentUrl.trim() === "") { return `<div class="rta-empty">No document available</div>`; } const cleanUrl = documentUrl.split("|")[0].trim(); if (isVideoFile(cleanUrl)) { return ` <video class="rta-modal-video" controls playsinline> <source src="/portals/1/${cleanUrl}"> </video> `; } return ` <a class="rta-modal-document-link" href="${cleanUrl}" target="_blank" rel="noopener"> Open Document </a> `; } function openModal(rowData) { app.querySelector(".rta-modal-title").textContent = rowData.title || ""; app.querySelector(".rta-modal-agency").textContent = rowData.agency || ""; app.querySelector(".rta-modal-date").textContent = rowData.date || ""; app.querySelector(".rta-modal-country").textContent = rowData.country || ""; app.querySelector(".rta-modal-document-content").innerHTML = buildSingleDocument(rowData.documents || ""); modal.classList.add("is-active"); } function closeModal() { const video = modal.querySelector("video"); if (video) { video.pause(); } modal.classList.remove("is-active"); } closeBtn.addEventListener("click", closeModal); modal.addEventListener("click", function (e) { if (e.target === modal) { closeModal(); } }); document.addEventListener("keydown", function (e) { if (e.key === "Escape") { closeModal(); } }); fetch(csvUrl) .then(response => response.text()) .then(csv => { const parsedRows = parseCSV(csv); const rows = parsedRows.slice(1); const rowObjects = rows.map(cols => { return { title: cols[0] || "", agency: cols[1] || "", date: cols[2] || "", country: cols[3] || "", documents: cols[4] || "" }; }); if (jQuery.fn.DataTable.isDataTable(tableSelector)) { return; } const table = jQuery(tableSelector).DataTable({ data: rowObjects, pageLength: 10, destroy: true, retrieve: true, columns: [ { data: "title" }, { data: "agency" }, { data: "date" }, { data: "country" }, { data: "documents", orderable: false, render: function (data) { if (!data || data.trim() === "") { return ""; } const cleanUrl = data.split("|")[0].trim(); const extensionMatch = cleanUrl.match(/\.([a-z0-9]+)(\?|$)/i); let extension = "FILE"; if (extensionMatch && extensionMatch[1]) { extension = extensionMatch[1].toUpperCase(); } return ` <span class="rta-table-btn"> ${extension} </span> `; } } ] }); jQuery(tableSelector + " tbody") .off("click.rtaModal") .on("click.rtaModal", "tr", function () { const rowData = table.row(this).data(); if (rowData) { openModal(rowData); } }); }) .catch(error => { console.error("CSV could not be loaded:", error); app.dataset.rtaInitialized = "false"; }); })(); </script> <!-- CLOCK --> <script>function updateESTClocks() { const now = new Date(); const estTime = now.toLocaleTimeString('en-GB', { timeZone: 'America/New_York', hour: '2-digit', minute: '2-digit', hour12: false }); document.querySelectorAll('.est-clock').forEach(clock => { clock.textContent = estTime; }); } updateESTClocks(); setInterval(updateESTClocks, 1000);</script><!-- REVEAL UP ANIMATION --> <script>const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('in-view'); observer.unobserve(entry.target); } }); }, { threshold: 0.15 }); document.querySelectorAll('.reveal-up').forEach(el => { observer.observe(el); });</script>
</div>
</div><!-- End_Module_9590 --></div>
</div><!--end of empty container -->
</div></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed5" class="DNNEmptyPane"></div>
<div id="content-pane-wrap5">
<div class="content-wrap">
<div id="dnn_ContentPane5" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed6" class="DNNEmptyPane"></div>
<div id="content-pane-wrap6">
<div class="content-wrap">
<div id="dnn_ContentPane6" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed7" class="DNNEmptyPane"></div>
<div id="content-pane-wrap7">
<div class="content-wrap">
<div id="dnn_ContentPane7" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed8" class="DNNEmptyPane"></div>
<div id="content-pane-wrap8">
<div class="content-wrap">
<div id="dnn_ContentPane8" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed9" class="DNNEmptyPane"></div>
<div id="content-pane-wrap9">
<div class="content-wrap">
<div id="dnn_ContentPane9" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed10" class="DNNEmptyPane"></div>
<div id="content-pane-wrap10">
<div class="content-wrap">
<div id="dnn_ContentPane10" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed11" class="DNNEmptyPane"></div>
<div id="content-pane-wrap11">
<div class="content-wrap">
<div id="dnn_ContentPane11" class="DNNEmptyPane"></div>
</div>
</div>
<div id="dnn_ContentPaneFullBleed12" class="DNNEmptyPane"></div>
<div id="content-pane-wrap12">
<div class="content-wrap">
<div id="dnn_ContentPane12" class="DNNEmptyPane"></div>
</div>
</div>
</main>
<footer>
<div id="footer">
<div class="footer-inner content-wrap content-wrap-wide">
<div class="dgov-grid">
<div class="dgov-col-auto">
<div class="dgov-grid">
<div id="dnn_Footer_footerNavCol1" class="footer-nav-col dgov-col-sm-12 dgov-col-md-auto">
<h3>
Department of War<i class="fas fa-chevron-down" aria-hidden="true"></i></h3>
<nav aria-label='Department of War'>
<ul class="footer-nav"><li class=""><a href="/"><span class="text text-link-18">Home</span></a></li><li class=""><a href="/News/"><span class="text text-link-20">News</span></a></li><li class=""><a href="/Spotlights/ "><span class="text text-link-22">Spotlights</span></a></li><li class=""><a href="/About/"><span class="text text-link-21">About</span></a></li></ul>
</nav>
</div>
<div id="dnn_Footer_footerNavCol2" class="footer-nav-col dgov-col-sm-12 dgov-col-md-auto">
<h3>
Helpful Links<i class="fas fa-chevron-down" aria-hidden="true"></i></h3>
<nav aria-label='Helpful Links'>
<ul class="footer-nav"><li class=""><a href="/Live"><span class="text text-link-23">Live Events</span></a></li><li class=""><a href="/News/Today-in-DOW/"><span class="text text-link-24">Today in DOW</span></a></li><li class=""><a href="/News/Contracts/"><span class="text text-link-25">Contracts</span></a></li><li class=""><a href="/Resources/For-the-Media/"><span class="text text-link-26">For the Media</span></a></li><li class=""><a href="/Contact"><span class="text text-link-27">Contact</span></a></li></ul>
</nav>
</div>
<div id="dnn_Footer_footerNavCol3" class="footer-nav-col dgov-col-sm-12 dgov-col-md-auto">
<h3>
Resources<i class="fas fa-chevron-down" aria-hidden="true"></i></h3>
<nav aria-label='Resources'>
<ul class="footer-nav"><li class=""><a href="/Resources/ "><span class="text text-link-28">Resources</span></a></li><li class=""><a href="https://www.dodciviliancareers.com/DOD-Careers" target="_blank" rel="noopener noreferrer" aria-label="Careers opens in a new window"><span class="text text-link-53">Careers</span></a></li><li class=""><a href="/contact/help-center"><span class="text text-link-29">Help Center</span></a></li><li class=""><a href="/Resources/Military-Departments/"><span class="text text-link-30">DOW / Military Websites</span></a></li><li class=""><a href="https://comptroller.war.gov/ODCFO/afr/" target="_blank" rel="noopener noreferrer" aria-label="DOD Agency Financial Report opens in a new window"><span class="text text-link-49">Agency Financial Report</span></a></li></ul>
</nav>
</div>
<div id="dnn_Footer_footerNavCol4" class="footer-nav-col dgov-col-sm-12 dgov-col-md-auto">
<h3>
Popular<i class="fas fa-chevron-down" aria-hidden="true"></i></h3>
<nav aria-label='Popular'>
<ul class="footer-nav"><li class=""><a href="https://media.defense.gov/2026/Jan/23/2003864773/-1/-1/0/2026-NATIONAL-DEFENSE-STRATEGY.PDF"><span class="text text-link-54">2026 National Defense Strategy</span></a></li><li class=""><a href="/Spotlights/Freedom250/"><span class="text text-link-34">America's Military – Celebrating Independence!</span></a></li><li class=""><a href="/Spotlights/Value-of-Service/"><span class="text text-link-33">Value of Service</span></a></li><li class=""><a href="/Spotlights/Drone-Dominance/"><span class="text text-link-36">Drone Dominance</span></a></li></ul>
</nav>
</div>
</div>
</div>
<div class="right-col dgov-col-md-12 dgov-col-lg-4">
<div class="right-col-inner">
<div class="mission">
<img class="footer-logo" alt="U.S. Department of War Logo" src="/Portals/1/Images/DOW-Icon-Header.png" />
<p>
The Department of War provides the military forces needed to deter war and ensure our nation's security.</p>
</div>
<div class="footer-search-wrap">
<label class="sr-only" for="footer-search-input">Enter Your Search Terms</label>
<i class="fa fa-search" id="fa-search-icon-bottom" aria-hidden="true"></i>
<input type="search" id="footer-search-input" name="footer-search" maxlength="256" placeholder="Search...">
</div>
</div>
</div>
</div>
</div>
</div>
<div id="footer-main">
<div class="footer-section">
<a id="dnn_Footer_hlVcl" rel="noreferrer noopener" class="crisis-line" aria-label="Veterans Crisis Line number. Dial 988 then Press 1 (opens in new tab)" href="https://www.veteranscrisisline.net/get-help-now/military-crisis-line/" target="_blank"><img id="dnn_Footer_imgVcl" src="/Portals/_default/skins/dgov2/resources/img/Veterans_Crisis_Line_Logo.svg" alt="Veterans Crisis Line number. Dial 988 then Press 1" /></a>
</div>
<div class="footer-separator"></div>
<div class="footer-section utility-nav desktop-only">
<nav aria-label="Utility and Legal Links">
<ul class=""><li class=""><a href="/Legal-Administrative/Privacy-Security/ "><span class="text text-link-12">Privacy & Security</span></a></li><li class=""><a href="/Legal-Administrative/Links-Disclaimer/ "><span class="text text-link-17">Links Disclaimer</span></a></li><li class=""><a href="http://dodcio.defense.gov/DoDSection508/Std_Stmt.aspx" target="_blank" rel="noopener noreferrer" aria-label="Section 508 opens in a new window"><span class="text text-link-13">Section 508</span></a></li><li class=""><a href="/resources/social-media-policy/"><span class="text text-link-52">Social Media Policy</span></a></li><li class=""><a href="http://dodcio.defense.gov/DoD-Web-Policy/ " target="_blank" rel="noopener noreferrer" aria-label="Web Policy opens in a new window"><span class="text text-link-14">Web Policy</span></a></li><li class=""><a href="http://www.esd.whs.mil/DD/plainlanguage/ " target="_blank" rel="noopener noreferrer" aria-label="Plain Writing Act opens in a new window"><span class="text text-link-37">Plain Writing Act</span></a></li><li class=""><a href="http://www.dodig.mil/ " target="_blank" rel="noopener noreferrer" aria-label="DOW IG opens in a new window"><span class="text text-link-38">DOW IG</span></a></li><li class=""><a href="https://policy.defense.gov/OUSDP-Offices/Reporting-Civilian-Casualties/ " target="_blank" rel="noopener noreferrer" aria-label="Reporting Civilian Casualties opens in a new window"><span class="text text-link-39">Reporting Civilian Casualties</span></a></li><li class=""><a href="https://prhome.war.gov/NoFear/" target="_blank" rel="noopener noreferrer" aria-label="No FEAR Act opens in a new window"><span class="text text-link-40">No FEAR Act</span></a></li><li class=""><a href="https://www.dma.mil/Services/Visual-Information/References/Limitations/" target="_blank" rel="noopener noreferrer" aria-label="Imagery Use opens in a new window"><span class="text text-link-41">Imagery Use</span></a></li><li class=""><a href="https://www.esd.whs.mil/FOID/ " target="_blank" rel="noopener noreferrer" aria-label="FOIA opens in a new window"><span class="text text-link-42">FOIA</span></a></li><li class=""><a href="http://open.defense.gov/ " target="_blank" rel="noopener noreferrer" aria-label="Open GOV opens in a new window"><span class="text text-link-43">Open GOV</span></a></li><li class=""><a href="https://media.defense.gov/2023/Mar/13/2003178168/-1/-1/1/DOD-STRATEGIC-MGMT-PLAN-2023.PDF" target="_blank" rel="noopener noreferrer" aria-label="Strategic Management Plan opens in a new window"><span class="text text-link-44">Strategic Management Plan</span></a></li><li class=""><a href="https://www.usa.gov/ " target="_blank" rel="noopener noreferrer" aria-label="USA.gov opens in a new window"><span class="text text-link-45">USA.gov</span></a></li><li class=""><a href="https://business.defense.gov/ " target="_blank" rel="noopener noreferrer" aria-label="Small Business Act opens in a new window"><span class="text text-link-46">Small Business Act</span></a></li><li class=""><a href="/site-index/ "><span class="text text-link-47">Site Map</span></a></li></ul>
</nav>
</div>
<div class="footer-separator desktop-only"></div>
<div class="social-nav-subscribe-container">
<div class="social-nav">
<ul class=""><li class=""><a href="https://twitter.com/DeptofWar" target="_blank" rel="noopener noreferrer" aria-label="X opens in a new window" title="X"><span class="social-icon fa-brands fa-x-twitter social-link-5"></span></a></li><li class=""><a href="https://www.facebook.com/DepartmentofWar" target="_blank" rel="noopener noreferrer" aria-label="Facebook opens in a new window" title="Facebook"><span class="social-icon fa-brands fa-facebook-f social-link-6"></span></a></li><li class=""><a href="https://www.instagram.com/deptofwar" target="_blank" rel="noopener noreferrer" aria-label="Instagram opens in a new window" title="Instagram"><span class="social-icon fa fa-instagram social-link-8"></span></a></li><li class=""><a href="http://www.linkedin.com/company/deptofwar" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn opens in a new window" title="LinkedIn"><span class="social-icon fa-brands fa-linkedin-in social-link-51"></span></a></li><li class=""><a href="https://www.youtube.com/@deptofwar" target="_blank" rel="noopener noreferrer" aria-label="YouTube opens in a new window" title="YouTube"><span class="social-icon fa-brands fa-youtube social-link-7"></span></a></li></ul>
</div>
<div class="subscribe-container">
<a class="subscribe-btn btn btn-sm btn-primary"
href="https://public.govdelivery.com/accounts/usdod/subscriber/new"
target="_blank">Subscribe
</a>
<a id="dnn_Footer_hlVclMobile" rel="noreferrer noopener" class="crisis-line-mobile" href="https://www.veteranscrisisline.net/get-help-now/military-crisis-line/" target="_blank"><img id="dnn_Footer_imgVclMobile" src="/Portals/_default/skins/dgov2/resources/img/Veterans_Crisis_Line_Logo.svg" alt="Veterans Crisis Line number. Dial 988 then Press 1" /></a>
</div>
</div>
</div>
</footer>
<div id="footer-hosting">
<div class="skin-footer-banner">
<a id="dnn_Footer_hlDmaLink" rel="noreferrer noopener" href="https://www.web.mil/" target="_blank">Hosted by WEB.mil</a>
</div>
</div>
<script type="text/javascript">
var usasearch_config = {
siteHandle: skinvars.aid,
autoSubmitOnSelect: false,
}
window.onload = function () {
document.getElementById("footer-search-input").value = "";
}
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "//search.usa.gov/javascripts/remote.loader.js";
document.getElementsByTagName("head")[0].appendChild(script);
(function ($) {
$(function () {
$('.footer-nav-col h3').click(function () {
if (window.innerWidth > 991) return;
$(this).parent('.footer-nav-col').toggleClass('active');
});
});
})(jQuery);
const queryInput = $("input[name=search-main],input[name=header-search], input[name=footer-search], i[id=fa-search-icon-bottom]").on("keyup", function (e) {
if (e.keyCode == 13) {
submitSearch($(this));
}
});
$("input[name=search-main] ~ button, .search-icon, input[name=footer-search], input[name=footer-search] ~ button, i[id=fa-search-icon-bottom]").on("click", function (e) {
e.stopImmediatePropagation();
submitSearch($(this));
});
$(".search-icon").on("keypress", function (e) {
if (e.which == 13) {
e.stopImmediatePropagation();
submitSearch($(this));
}
});
function submitSearch($this) {
const query = $this ? ($this.val() || $this.parent().find('input').val()) : "";
const affiliate = !!skinvars.aid ? skinvars.aid : 'defensegov';
if (query.length > 1)
window.location = "//search.usa.gov/search?query=" + DOMPurify.sanitize(query) + "&affiliate=" + affiliate + "&utf8=%26%23x2713%3B";
}
</script>
<input name="ScrollTop" type="hidden" id="ScrollTop" />
<input name="__dnnVariable" type="hidden" id="__dnnVariable" autocomplete="off" />
<script src="/DesktopModules/SharedLibrary/ValidatedPlugins/dompurify//purify.min.js?cdv=2054" type="text/javascript"></script><script src="/Desktopmodules/SharedLibrary/Plugins/Bootstrap/js/bootstrap.min.js?cdv=2054" type="text/javascript"></script>
</form>
<!--CDF(Javascript|/js/dnncore.js?cdv=2054|DnnBodyProvider|100)--><!--CDF(Css|/Portals/1/Interactive/2026/UFO/aaro07.css?cdv=2054|DnnPageHeaderProvider|100)--><!--CDF(Javascript|/js/dnn.modalpopup.js?cdv=2054|DnnBodyProvider|50)--><!--CDF(Css|/Resources/Shared/stylesheets/dnndefault/7.0.0/default.css?cdv=2054|DnnPageHeaderProvider|5)--><!--CDF(Css|/Portals/_default/Skins/DGOV2/skin.css?cdv=2054|DnnPageHeaderProvider|15)--><!--CDF(Css|/Portals/_default/Containers/DGOV2/container.css?cdv=2054|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/_default/Containers/DGOV2/container.css?cdv=2054|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/1/portal.css?cdv=2054|DnnPageHeaderProvider|35)--><!--CDF(Javascript|/Desktopmodules/SharedLibrary/Plugins/Skin/js/common.js?cdv=2054|DnnBodyProvider|101)--><!--CDF(Javascript|/Desktopmodules/SharedLibrary/Plugins/Mobile-Detect/mobile-detect.min.js?cdv=2054|DnnBodyProvider|100)--><!--CDF(Css|/Desktopmodules/SharedLibrary/Plugins/SocialIcons/css/fa-social-icons.css?cdv=2054|DnnPageHeaderProvider|100)--><!--CDF(Css|/Desktopmodules/SharedLibrary/Plugins/Skin/SkipNav/css/skipnav.css?cdv=2054|DnnPageHeaderProvider|100)--><!--CDF(Javascript|/Desktopmodules/SharedLibrary/ValidatedPlugins/moment/moment.js?cdv=2054|DnnBodyProvider|100)--><!--CDF(Javascript|/Desktopmodules/SharedLibrary/ValidatedPlugins/vue/vue.min.js?cdv=2054|DnnBodyProvider|100)--><!--CDF(Javascript|/Desktopmodules/SharedLibrary/ValidatedPlugins/vue-resource/vue-resource.min.js?cdv=2054|DnnBodyProvider|100)--><!--CDF(Javascript|/DesktopModules/MVC/DVIDSLiveEvents2/Resources/js/dvids-dle-api.js?cdv=2054|DnnBodyProvider|1020)--><!--CDF(Javascript|/DesktopModules/SharedLibrary/ValidatedPlugins/dompurify//purify.min.js?cdv=2054|DnnFormBottomProvider|100)--><!--CDF(Javascript|/DesktopModules/SharedLibrary/ValidatedPlugins/dompurify//purify.min.js?cdv=2054|DnnFormBottomProvider|100)--><!--CDF(Javascript|/Desktopmodules/SharedLibrary/Plugins/Bootstrap/js/bootstrap.min.js?cdv=2054|DnnFormBottomProvider|100)--><!--CDF(Css|/Desktopmodules/SharedLibrary/Plugins/Bootstrap/css/bootstrap.min.css?cdv=2054|DnnPageHeaderProvider|14)--><!--CDF(Css|/Desktopmodules/SharedLibrary/ValidatedPlugins/font-awesome6/css/all.min.css?cdv=2054|DnnPageHeaderProvider|100)--><!--CDF(Css|/Desktopmodules/SharedLibrary/ValidatedPlugins/font-awesome6/css/v4-shims.min.css?cdv=2054|DnnPageHeaderProvider|100)--><!--CDF(Css|/Desktopmodules/SharedLibrary/ValidatedPlugins/font-awesome6/css/all.min.css?cdv=2054|DnnPageHeaderProvider|100)--><!--CDF(Css|/Desktopmodules/SharedLibrary/ValidatedPlugins/font-awesome6/css/v4-shims.min.css?cdv=2054|DnnPageHeaderProvider|100)--><!--CDF(Javascript|/Resources/libraries/jQuery/03_07_01/jquery.js?cdv=2054|DnnPageHeaderProvider|5)--><!--CDF(Javascript|/Resources/libraries/jQuery-Migrate/03_04_01/jquery-migrate.js?cdv=2054|DnnPageHeaderProvider|6)--><!--CDF(Javascript|/Resources/libraries/jQuery-UI/01_13_03/jquery-ui.min.js?cdv=2054|DnnPageHeaderProvider|10)-->
</body>
</html>