An official website of the United States Government 
Here's how you know

Official websites use .gov

.gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS

A lock ( lock ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

PopPopcasino gamble table Fruity

```html Exploring the Contents of PopPop Fruity

Exploring the Contents of PopPop Fruity

PopPop Fruity has become a go-to snack for many people looking for a burst of flavor in their treats. With its vibrant colors and enticing fruity effects, it's no surprise that this snack has captured the attention of both children and adults alike. But what exactly is in PopPop Fruity? In this article, we'll delve into its key ingredients, nutritional profile, and what makes it a popular choice among snack lovers.

1. Key Ingredients of PopPop Fruity

The foundation of any snack lies in its ingredients. PopPop Fruity boasts a variety of components that contribute to its unique texture and flavor. The core ingredients include:

  • Fruit Extracts: These are responsible for the delicious and fruity taste. Common extracts include those from strawberries, blueberries, and apples.
  • Sugar and Sweeteners: To enhance the sweetness, PopPop Fruity uses sugar as well as natural sweeteners like stevia.
  • Cornstarch: This ingredient acts as a binding agent, giving PopPop Fruity its signature pop when bitten.

2. Nutritional Profile

Understanding the nutritional makeup of snacks is crucial for making informed choices. PopPop Fruity generally offers:

  • Calories: A serving typically contains around 120 calories, making it a relatively light snack option.
  • Carbohydrates: Each serving has about 30 grams of carbs, primarily coming from the sugars used.
  • Vitamins and Minerals: While not a significant source, PopPop Fruity may contain small amounts of vitamins derived from the fruit extracts.

3. Allergen Information

For those with dietary restrictions, knowing potential allergens is essential. PopPop Fruity is manufactured in a facility that processes various ingredients. Therefore, it may contain traces of:

  • Nuts
  • Dairy
  • Gluten

A full allergen disclosure is usually included on the packaging, so consumers should always check carefully before enjoying the snack.

4. Popularity Among Snack Lovers

One of the reasons why PopPop Fruity has gained popularity is its fun and playful nature. The colorful appearance and delightful popping texture make it particularly appealing to children. Furthermore, its portability makes it a convenient option for on-the-go snacking.

Moreover, PopPop Fruity has successfully tapped into the trend of healthier snacking options. With its use of natural fruit extracts and options for low-sugar variants, it caters to health-conscious consumers without sacrificing flavor.

5. Conclusion

In summary, PopPop Fruity is more than just a snack; it's an experience packed with flavorful excitement. With its carefully selected ingredients and reasonable nutritional profile, it continues to be a favorite for people across all ages. Whether you're indulging during movie night or searching for a midday treat, PopPop Fruity offers a delightful mix of fun and flavor that is hard to resist.

``` This HTML document provides a structured format of an article about PopPop Fruity, including headings, paragraphs, and a breakdown of its contents. Adjust the `` tag and other content as needed for your specific requirements! <div class="x0ushbrm8z85dq5p related ntext"> <div class="o64xt6rzzbi55jvh item"> <span class="r23cmdb56966djio subtitle">Spotlight:</span> <a class="lxf3jm7vomo918fu article-link" href="//sayaphlogin.com/br/NUTlgxNy-26/">dangers of gambling and internet addiction</a> </div> <div class="at5npacnmk58m3b1 item"> <span class="uez4i52n8e9womus subtitle">Spotlight:</span> <a class="656r76u73oowvb6v article-link" href="//sayaphlogin.com/web/xVTrRMVt-82/">procter 7 gamble</a> </div> <div class="xd0voxqn6upiamuw item"> <span class="clb60b7hpcv10bnt subtitle">Spotlight:</span> <a class="smg7i6cu55yovdkg article-link" href="//sayaphlogin.com/h5/BhMZpFnD-63/">chinese good luck charms for gambling</a> </div> <div class="jj3tnvewopncl0i5 item"> <span class="9oya8j9go4au8rob subtitle">Spotlight:</span> <a class="fdzplwbrfjjv66cx article-link" href="//sayaphlogin.com/jogo/ETpCEBkE-60/">cambridge gamble and information sampling tasks</a> </div> <div class="2kt9tdaqzyy6tsar item"> <span class="r2pixrk2091szos5 subtitle">Link:</span> <a class="uri4s4mpoc62f0xs article-link" href="//sayaphlogin.com/game/RACgEtQn-29/" target="_blank" rel="noopener">play rummy free download</a> </div> </div> </div> <div class="dcxg1dasff6z5oly tags"> <a href='//sayaphlogin.com/bet/ayfNoZCL-53/'>taurus gambling horoscope</a> <a href='//sayaphlogin.com/win/fMhHRAyg-99/'>procter and gamble price</a> <a href='//sayaphlogin.com/online/JCpsjcRU-41/'>csgo gambling websites 2019</a> <a href='//sayaphlogin.com/store/LndgsiAJ-66/'>gambling treatment clinic</a> <a href='//sayaphlogin.com/pc/ODCUAGPH-68/'>difference between speculation and gambling with comparison chart</a> <a href='//sayaphlogin.com/game/YTPMsifU-20/'>bill gates procter gamble cake</a> <a href='//sayaphlogin.com/online/IUAGPOha-32/'>procter and gamble hair care brands</a> <a href='//sayaphlogin.com/m/PEXrBtPO-31/'>gambling and betting market dricers</a> <a href='//sayaphlogin.com/pc/gnIRqtoX-82/'>mobile casino gambling</a> </div> </div> </div> </div> </div> <script type="text/javascript"> var displayNextPrevNav = false var loggedIn = false; var articleId = 3860284; var moduleId = 1990; var mejPlayer; $(function () { if (!window.delayInitMediaElementJs) initMediaElementJs(); }); function initMediaElementJs() { mejPlayer = $(".article-view video").not(".noplayer").mediaelementplayer({ pluginPath: "https://www.defense.gov/desktopmodules/SharedLibrary/Plugins/MediaElement4.2.9/", videoWidth: '100%', videoHeight: '100%', success: function (mediaElement, domObject) { var aDefaultOverlay = jQuery(mediaElement).parents('.media-inline-video, .video-control').find('.defaultVideoOverlay.a-video-button'); var aHoverOverlay = jQuery(mediaElement).parents('.media-inline-video, .video-control').find('.hoverVideoOverlay.a-video-button'); var playing = false; $("#" + mediaElement.id).parents('.media-inline-video, .video-control').find('.mejs__controls').hide(); if (typeof GalleryResize === "function") GalleryResize(); mediaElement.addEventListener('play', function (e) { playing = true; jQuery(".gallery").trigger("pause", false, false); $("#" + e.detail.target.id).parents('.media-inline-video, .video-control').find('.mejs__controls').show(); $("#" + e.detail.target.id).parents('.media-inline-video, .video-control').find('.duration').hide(); if (aDefaultOverlay.length) { aDefaultOverlay.hide(); aHoverOverlay.hide(); } //place play trigger for DVIDS Analytics }, false); mediaElement.addEventListener('pause', function (e) { playing = false; if (aDefaultOverlay.length) { aDefaultOverlay.removeAttr("style"); aHoverOverlay.removeAttr("style"); } }, false); mediaElement.addEventListener('ended', function (e) { playing = false; }, false); if (aDefaultOverlay.length) { aDefaultOverlay.click(function () { if (!playing) { mediaElement.play(); playing = true; } }); aHoverOverlay.click(function () { if (!playing) { mediaElement.play(); playing = true; } }); } }, features: ["playpause", "progress", "current", "duration", "tracks", "volume", "fullscreen"] }); if (displayNextPrevNav) { DisplayNextPreviousNav(moduleId, articleId, loggedIn); } } $(window).load(function () { if (displayNextPrevNav) { var winWidth = $(document).width(); if (winWidth > 1024) { $('#footerExtender').css('height', '0px'); $('.article-navbtn .headline').addClass('contentPubDate'); } else { $('#footerExtender').css('height', $('.article-navbtn .headline').html().length > 0 ? $('.bottomNavContainer').height() + 'px' : '0px'); $('.article-navbtn .headline').removeClass('contentPubDate'); } } }); $(window).resize(function () { if (displayNextPrevNav) { var winWidth = $(document).width(); if (winWidth < 1024) { $('#footerExtender').css('height', $('.article-navbtn .headline').html().length > 0 ? $('.bottomNavContainer').height() + 'px' : '0px'); $('.article-navbtn .headline').removeClass('contentPubDate'); } else { $('#footerExtender').css('height', '0px'); $('.article-navbtn .headline').addClass('contentPubDate'); } } }); </script> </div><!-- End_Module_1990 --> </div> </div> <!--end of empty container --> </div> </div> <div id="content-pane-wrap"> <div class="0rqlk6yilr4sucgn content-wrap"> <div id="dnn_ContentPane"> <div class="gj115uxct2g52kfw DnnModule DnnModule-DNN_HTML DnnModule-2787"><a name="2787"></a> <div class="d3s27so142uah20l empty-container base-container"> <div id="dnn_ctr2787_ContentPane"> <!-- Start_Module_2787 --> <style> .subscribe { margin-top:0 !important; } </style> <div id="dnn_ctr2787_ModuleContent" class="5daq3p04yvufjsq7 DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr2787_HtmlModule_lblContent" class="28pgu8vydmzncnto Normal"> <style> /*************************************************** SUBSCRIBE ***************************************************/ .subscribe { text-align: center; background: #ebebeb; padding: 2rem 2rem 1.5rem; max-width: 640px; margin: 3rem auto 3rem; } .subscribe h3 { text-align: left; margin-left: 15px; font-size: 1.7rem; margin-bottom: .5rem } .subscribe p { text-align: left; margin: -2px 0 0 0; font-size: 18px; color: #333; } .subscribe .btn.btn-primary { float: right; } /*************RESPONSIVE **********/ @media only screen and (max-width: 768px) { .subscribe { max-width: 620px; } .subscribe h3 { font-size: 2.1rem; } } @media only screen and (max-width: 600px) { .subscribe { text-align: center; padding: 2rem 2rem 1.5rem; } .subscribe h3 { text-align: center; Margin : 0; font-size: 2rem; } .subscribe p { text-align: center; margin: 0; font-size: 20px; line-height: 1.4; } .subscribe .btn.btn-primary { float: none; } } </style> <div class="54hecs6v4vyr7ryg subscribe"> <article> <h3>Subscribe to Defense.gov Products</h3> <div class="rpoxfgi3ktsd80o0 dgov-grid"> <div class="i9t0xnvacsi0bqb8 dgov-col-sm-7 dgov-col-xs-12"> <p>Choose which Defense.gov products you want delivered to your inbox.</p> </div> <div class="b0qs5tw8c0pg7rvd dgov-col-sm-5 dgov-col-xs-12"><a class="hjij4h2k2dg79rcj btn btn-primary" href="//sayaphlogin.com/blogs/RZUfzJhF-26/">Subscribe </a></div> </div> </article> </div> </div> </div><!-- End_Module_2787 --> </div> </div> <!--end of empty container --> </div> <div class="68ostzrleo44sowp DnnModule DnnModule-ArticleCSDashboard DnnModule-670"><a name="670"></a> <div class="kz1rzmr0j0dh537p empty-container base-container"> <div id="dnn_ctr670_ContentPane"> <!-- Start_Module_670 --> <style> h2.tab-title { margin-bottom: 5px; } @media screen and (max-width: 768px) { h2.tab-title { margin-left: 15px; margin-right: 15px;} } /* HOT FIX */ #alist-suggest .btn { display: none !important; } .alist .pager { display: none !important; } .alist .pager .btn-primary-ghost, .alist .pager .btn-primary-ghost:visited { display: none !important; } display: none !important; } </style> <h2 class="4phgnt2qzur4zls8 tab-title"><span>Related Stories</span></h2> <div id="dnn_ctr670_ModuleContent" class="5l4ppvx5zashr28s DNNModuleContent ModArticleCSDashboardC"> <div id="dnn_ctr670_Dashboard_ph"> <div id="storyListing-670"> <div id="alist-suggest" class="t8eg4kszyr10r3xx alist stories external-news-list"> <div class="edb07pfd6t110168 spinner3" style="display: none;"> <div class="cz0a6svuahl2dpaf bounce1"></div> <div class="rc0sungacp4djskd bounce2"></div> <div class="8nbfh37xg0ejow5e bounce3"></div> </div> <div class="6d5gfweqq3e7du52 alist-inner alist-more-here"> <div class="vmjw5r47191w8er9 feature-template"> <div class="f41ivf77sqxrorg0 feature-template-container"> <div class="op8845wj6zl50910 dgov-grid"> <div class="kk7h7fb1me4amxi5 dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="x68zn4jeryklx4g4 listing-with-preview item explore-item"> <figure> <div class="w3i80436lrrwmbe1 dgov-grid dgov-grid-bleed"> <div class="88n0j2qfsdpf9n2j dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="x1u3nootnhbykp4z image-wrap"> <!----> <div class="28vtgwmglxztooaz image-wrap-wrap"> <div class="42faig53slg8f044 image-replacement" style="background-image: url(/images/zoyvh.jpg);"></div> <img alt="" src="/images/qspeyulh.jpg"> </div> </div> </div> <div class="4h17rvr2jj486z48 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="tsd1dytw4wgb9gmh category"><a href="//sayaphlogin.com/app/fDdiuuIi-47/" class="ccwib2ayluzj5c1h content-type-text feature"><span>NEWS</span></a> <span class="i7b9ifrq4w9jtrb0 item-date-time"><span class="kf1onygs1l8u5rbz separator">|</span> <time data-dateago="2024-12-10 04:36:27" data-dateap="{日期}">2024-12-10 04:36:27</time></span></span> <h3 class="8aujcwk4v4m2hvyf title"><span>Denmark vows to r</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/pc/yzNhnQDC-13/" class="y13o4lc1jsfp6okg link-overlay"><span class="ek9naf4h1qe9kr00 sr-only">in foreign visitors</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="4ismgn8zogqsa3cw dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="lsceeef0g2wz9ous listing-with-preview item explore-item"> <figure> <div class="xvwgghkesp839t90 dgov-grid dgov-grid-bleed"> <div class="t01modiw3m742hya dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="02ll1kyzbkpyrvxx image-wrap"> <!----> <div class="dop9q6mjd9iu10it image-wrap-wrap"> <div class="de4fb5apg1k61c5j image-replacement" style="background-image: url(/images/jjbeuaao.jpg);"></div> <img alt="" src="/images/blyoz.jpg"> </div> </div> </div> <div class="rnf9mnscc2gdlikx dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="qwj0ikjplbubu0g2 category"><a href="//sayaphlogin.com/wap/ESMqcjIg-82/" class="kti0tgolzeccet2x content-type-text feature"><span>NEWS</span></a> <span class="svzq51t94cyyb41d item-date-time"><span class="qcervyptjrcjgmqx separator">|</span> <time data-dateago="2024-12-10 04:36:27" data-dateap="{日期}">2024-12-10 04:36:27</time></span></span> <h3 class="7x28hke6fosirfaf title"><span>es four</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/m/NOEwZDIe-98/" class="p9myvdza3ng8tkd9 link-overlay"><span class="bvvorksdfoj8ymr6 sr-only">estore gutted landmark</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="pzlkr5b6jtm28702 dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="5u19ezf2ve5mmg4b listing-with-preview item explore-item"> <figure> <div class="s1blcqtcnaplq9wf dgov-grid dgov-grid-bleed"> <div class="ffutp08y2xzn1png dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="jiakuuq0n1vhb246 image-wrap"> <!----> <div class="491jcb47suyt85l1 image-wrap-wrap"> <div class="xvufu9f7jm0a8e4u image-replacement" style="background-image: url(/images/fhkph.jpg);"></div> <img alt="" src="/images/qspeyulh.jpg"> </div> </div> </div> <div class="pqlv74d58ecb6mqb dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="11em7ycr9xlaui9l category"><a href="//sayaphlogin.com/blogs/LRbiEfTe-91/" class="3zadidxloatf5fks content-type-text feature"><span>NEWS</span></a> <span class="j0wna49jl4zfpmqk item-date-time"><span class="p4fqqz7pcsm542dn separator">|</span> <time data-dateago="2024-12-10 04:36:27" data-dateap="{日期}">2024-12-10 04:36:27</time></span></span> <h3 class="ff6u67hmyxyovfsa title"><span>Jakarta-Bandung high-spe</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/wap/JqgfyGIw-37/" class="ip93oyhlnnyeiqi1 link-overlay"><span class="yoghabaslgjfl06m sr-only">r minors aged 12-14 to 10 to 15</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="4h4yjimavz7q4iol dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="asrs6hhzlod3ghar listing-with-preview item explore-item"> <figure> <div class="zbj1oqjbj6d7e8sd dgov-grid dgov-grid-bleed"> <div class="uxwpazxxm8im4f60 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="v1rcpmuq6xemgt19 image-wrap"> <!----> <div class="lfhcaye0pluogvri image-wrap-wrap"> <div class="ykzhd62rvna3cbam image-replacement" style="background-image: url(/images/ttjsqslt.jpg);"></div> <img alt="" src="/images/qspeyulh.jpg"> </div> </div> </div> <div class="n93a6qux03604sqc dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="jistyfs91usd6mjl category"><a href="//sayaphlogin.com/app/EgHzuGfC-12/" class="weucjq4ys9bw0nvl content-type-text feature"><span>NEWS</span></a> <span class="41u2h2gepy0hlrpu item-date-time"><span class="ixuq02ahhk339zw7 separator">|</span> <time data-dateago="2024-12-10 04:36:27" data-dateap="{日期}">2024-12-10 04:36:27</time></span></span> <h3 class="82441j29fot9d30r title"><span>Guangdong ship collision</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/store/BPhjiOFD-62/" class="2efgchkizikx5v93 link-overlay"><span class="ra9937hysbb15q0r sr-only">t: report</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> </div> </div> <!----> <div class="0lcn2o9bi3znpp4e bottom-target"></div> </div> </div> <br> <br> <div class="fcndnydvinizcy2o pager"><button class="rrl8noh1x0shyhcv alist-more-button btn btn-primary btn-primary-ghost" style="display: none;"> Load More </button> <div class="i9024tt1gmzze893 number-pager"> <div class="rklv83ruhk4xq4ky hidden-xs"></div> <div class="u4odrpypkd757i2e visible-xs"></div> </div> </div> </div> </div> <script> $(document).ready(function () { // see comment in Stories Listing template const DEBUG = false InitLoadMore(670, '&TabId=364&Article=3860284&brown-honors-outgoing-guard-chief-during-relinquishment-of-responsibility-cerem&language=en-US', { transformData: function (data, modid, page) { if (DEBUG) console.log("Stories Listing101: wrapData", data, modid, page); const moreId = "more-added-" + modid + "-" + page; const inject = "<feature-template id='" + moreId + "'" + " template-mode='story' :show-all='true' :remove-grid='true'>" + data + "</feature-template>"; return inject; }, afterInject: function (modid, page) { if (DEBUG) console.log("Stories Listing101: afterInject", modid, page); const moreId = "more-added-" + modid + "-" + page; const el = $("#" + moreId)[0]; const moreVue = new Vue({ el: el, }); }, }); $('.spinner3').fadeOut('fast'); }); /* link img and title hover */ $('.alist .poster a, .alist .info').hover(function () { $(this).closest('.item').addClass('hover'); }, function () { $(this).closest('.item').removeClass('hover'); }); $('.alist .info').click(function (evt) { if (evt.target.className.indexOf("info") !== -1) { var url = $(this).data("url"); window.location.href = url; } }); </script> <style> #alist .content-type-text.live { min-width: 135px; } #alist .content-type-text.live .live-icon { display: inline-block; max-width: 30px; margin-right: 5px; position: relative; top: -2px; } #alist .listing-with-preview { margin: 7px 0 23px; padding: 20px 0 0; border-top: 1px solid #ebebeb; } #alist .listing-with-preview:first-child { border-top: none; padding: 0; margin-top: 0; } #alist .listing-with-preview .image-container { display: none; display: block; } #alist .listing-with-preview:first-child .image-container { display: block; } #alist { margin-bottom: 2rem; } #alist figcaption .category a { display: inline-block; margin-bottom: 0; font-size: 15px; color: #355e93; text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px solid rgba(53, 94, 147, 0); -webkit-transition: border .25s ease; -moz-transition: border .25s ease; -ms-transition: border .25s ease; -o-transition: border .25s ease; transition: border .25s ease; text-decoration: none; } #alist figcaption .category a:hover { border-bottom: 1px solid rgba(53, 94, 147, 1); } #alist figcaption .category .separator { color: #355e93; opacity: .5; margin: 0 8px 0 6px; } #alist figcaption .summary { font-size: 18px; margin: 0; } #alist .video-duration { display: none; } #alist figcaption time { display: inline-block; font-size: 15px; margin: 5px 0; color: #717171; padding: 0; min-width: 100px; } #alist .item figcaption h3.title { font-size: 1.6rem; font-family: 'Crimson Text', serif; font-weight: 500; line-height: 1.1em; margin-bottom: 8px; } #alist .item figcaption h3.title a { display: block; padding-left: 0px; border-left: 0px solid #fff; transition: all 0.15s linear; padding-right: 14px; } #alist .item figcaption h3.title a:hover { color: #355e93; padding-left: 10px; padding-right: 0px; border-left: 4px solid #254267; text-decoration: none; } #alist .item .image-wrap { margin-right: 0; margin-top: 8px; } #alist .item .image-wrap a { display: block; position: relative; padding-top: 66%; overflow: hidden; border: 1px solid #adadad; } #alist .item .image-replacement { background-color: rgba(255,255,255,.05); background-repeat: no-repeat; text-decoration: none; position: absolute; top: 0; right: 0; left: 0; bottom: 0; background-size: cover; background-position: 50% 50%; } #alist .item .image-wrap img { position: absolute; left: -9999px; } #alist .item:first-child figcaption { margin-left: 20px; } #alist .item figcaption { margin-left: 20px; } #alist .item figcaption h3.title a.card-edit-span { position: absolute; top: -15px; right: 0; padding: 0; } #alist .service-source { display: inline-block; position: relative; font-size: 17px; text-transform: uppercase; font-weight: bold; background: #355e93; color: #fff; padding: 2px 7px; margin: 0; } #alist .service-source.service-army { background: #376251; } #alist .service-source.service-marinecorps { background: #990F00; } #alist .service-source.service-navy { background: #88743A; } #alist .service-source.service-airforce { background: #144A75; } #alist .service-source.service-spaceforce { background: #D2D5D2; color: #2C588F; } #alist .service-source.service-coastguard { background: #327AB7; } #alist .service-source.service-nationalguard { background: #000000; } @media (max-width: 575px) { #alist .item:first-child figcaption { margin-left: 0; margin-top: 8px; } #alist .listing-with-preview { margin: 7px 0 12px; padding: 15px 0 0; } } </style> <!-- This can be used to contain items in a programmable reflex-grid NOTE: this is DEPRECATED, use <card-layout>. Change is for naming purposes, but of course, card-layout is now getting improvements. --> <script type="text/x-template" id="vue-feature-template"> <div class="gzi1hjqtrxdniale feature-template"> <div :class="aamydz3skh1y21ai 'feature-template-container' + (removeGrid ? '' : ' dgov-grid dgov-grid-full')"> <slot></slot> </div> <div class="mmbp25yfvjo1q99i more-row" v-if="thereAreMoreToView()"> <a class="li75z7rctej39o3a btn btn-default btn btn-insidedod btn-insidedod-ghost" v-on:click="viewMore" :title="moreText">Load More</a> </div> <div class="99aem89e59wy9l9p bottom-target"></div> </div> </script> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("this is the feature-template component"); const tempSel = ""; const tempUse = tempSel ? tempSel : "#vue-feature-template"; if (DEBUG) console.log("f-t20: passed in selector for template div", tempSel) if (DEBUG) console.log("f-121: selector template div to use", tempUse); const tempEl = $(tempUse)[0]; if (DEBUG) console.log("f-t15: template element", tempEl); /////// // // Different layouts // // // Feature Blog Layout // const desktopAndLg = { full: ["dgov-col-6:feature", "dgov-col-6:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"], 4: ["dgov-col-12:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"], 3: ["dgov-col-4", "dgov-col-4", "dgov-col-4"], 2: ["dgov-col-6:feature", "dgov-col-6:feature"], 1: ["dgov-col-12:feature"], }; const blog_layouts = { desktop: desktopAndLg, lg: desktopAndLg, md: { full: ["dgov-col-12:feature", "dgov-col-6", "dgov-col-6", "dgov-col-6", "dgov-col-6"], 4: ["dgov-col-12:feature", "dgov-col-12:feature", "dgov-col-6", "dgov-col-6"], 3: ["dgov-col-12", "dgov-col-12", "dgov-col-12"], 2: ["dgov-col-12:feature", "dgov-col-12:feature"], 1: ["dgov-col-12:feature"], }, xs: { full: ["dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12"], 4: ["dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12"], 3: ["dgov-col-12", "dgov-col-12", "dgov-col-12"], 2: ["dgov-col-12", "dgov-col-12"], 1: ["dgov-col-12"], }, } // // Story Layout // const grid3col = ["dgov-col-4", "dgov-col-4", "dgov-col-4"]; const grid2col = ["dgov-col-6", "dgov-col-6"]; const grid1col = ["dgov-col-12"]; const layout3xn = { full: grid3col, 2: grid2col, 1: ["dgov-col-12"], } const layout2xn = { full: grid2col, 1: ["dgov-col-12"], } const layout1xn = { full: grid1col, } const story_layouts = { desktop: layout3xn, lg: layout2xn, md: layout2xn, xs: layout1xn } Vue.component('feature-template', { name: 'feature-template', data: function () { return { templateSelector: "", numToShow: 5, pageAmount: 6, }; }, props: { "template-mode": String, "more-text": String, "show-all": { type: Boolean, default: false, }, "remove-grid": { type: Boolean, default: false, } }, template: tempEl, // matches ID in template above mounted: function () { window.addEventListener('resize', this.resize) this.resize(); }, methods: { resize: function () { if (DEBUG) console.log("resizing"); this.markChildren(); }, getLayout: function (layoutName) { // get particular layout based on layoutName argument // internally: also uses number of children and media size const numItems = this.$children.length; const mediaSize = this.getMediaType(); let layouts = this.getLayouts(this.templateMode); /* if there is a set for the mediasize and number, pick it, * otherwise layout remains the starting one above * Note: Every case should have a layout but just in case * this fails more gracefully, probably. */ const layoutsForMediaSize = layouts[mediaSize] ? layouts[mediaSize] : layouts.desktop; const lfms = layoutsForMediaSize; if (lfms) { if (lfms[numItems]) { layout = lfms[numItems]; } else if (lfms.full) { layout = lfms.full; } } else { // using dgov-grid these are classes for up to five children const default_layout = ["dgov-col-6:feature", "dgov-col-6:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"]; layout = default_layout; } return layout; }, getLayouts: function (layoutName) { let layouts; switch (layoutName) { case "override": layouts = window._dgov_feature_layout_override; break; case "story": layouts = story_layouts; break; case "blog": default: layouts = blog_layouts; break; } return layouts; }, getMediaType: function () { const isXS = window.matchMedia("(max-width: 767px)").matches; const isMD = window.matchMedia("(min-width: 768px) and (max-width: 991px)").matches; const isLG = window.matchMedia("(min-width: 992px) and (max-width: 1199px)").matches; const isGiant = window.matchMedia("(min-width: 1200px)").matches; if (isXS) { return "xs"; } else if (isMD) { return "md"; } else if (isLG) { return "lg"; } else /* if (isGiant) */ { return "desktop" }; }, markChildren: function () { const numItems = this.$children.length; const mediaSize = this.getMediaType(); let layout = this.getLayout(this.templateMode); const layoutLen = layout.length; for (let i = 0; i < this.$children.length; i++) { const item = this.$children[i] if (DEBUG) console.log('layout', layout.length, layout); if (i >= layout.length) { // hide //item.addClass("hidden-item"); const pieces = layout[layout.length - 1].split(":"); const reflexClass = pieces[0]; const cardType = pieces[1]; if (item.setCardType) item.setCardType(cardType); // undefined means default if (item.resetClass) item.resetClass(); if (item.addClass) item.addClass(reflexClass); } else { const pieces = layout[i].split(":"); const reflexClass = pieces[0]; const cardType = pieces[1]; // might be undefined if (DEBUG) console.log("f-t85:", pieces, reflexClass, cardType); if (item.setCardType) item.setCardType(cardType); // undefined means default if (item.resetClass) item.resetClass(); if (item.addClass) item.addClass(reflexClass); } if (!this.showAll && (i >= this.numToShow)) { if (item.addClass) item.addClass("hidden-item"); } } }, thereAreMoreToView: function () { if (!this.showAll && (this.numToShow < this.$children.length)) { return true; } else { return false; } }, viewMore: function () { // view more! this.numToShow += this.pageAmount; if (DEBUG) console.log("viewMore event, numToShow", this.numToShow); this.resize(); setTimeout(function () { const targel = $('.bottom-target')[0]; if (targel.scrollIntoView) { targel.scrollIntoView(false); } }, 100); }, } }); })(); </script> <style> .feature-template .dgov-grid.feature-template-container .hidden-item { display:none; } .feature-grid.alist.stories .feature-template .item a.title, .feature-grid.alist.stories .feature-template .item a.title:link { font-size:1.4rem; } .more-row { display: flex; align-items: center; flex-direction: column; padding: 15px; } /* Note: this relates to lack of encapsulation where Dashboard applies .list class to parent container. Would be better to have an event so that the card code 'knows' the card is in 'list' mode. This rule isn't needed however, but is documentation since this may be an issue if the structure changes to include future features. Special rule is in story-card, may be moved or similar for other types of cards. */ .alist.stories.list .feature-template .feature-template-container { display:block; } .more-row { display: flex; align-items: center; flex-direction: column; padding: 15px; } /*.feature-template-container { display: flex; flex-direction: row; }*/ </style> <script type="text/x-template" id="vue-listing-with-preview-template"> <div class="brzqxdxsixp10ko8 listing-with-preview item explore-item"> <figure> <div class="1t84e1j0plrab3oz dgov-grid dgov-grid-bleed"> <template v-if="pageNumber == 1 || alwaysShowImages"> <div :class="7ot5gq34iqnhtlff imageContainerClasses"> <div class="5pbx52yw6pq6s5nl image-wrap" v-bind:class="bkshuw65ogpvheu0 {'video-wrap-container no-pointer-events': isVideo}"> <template v-if="isVideo"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-default.png" class="sgb5say4nx3xyomd defaultVideoOverlay a-video-button"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-hover.png" class="lwhqmpjlabgwod9v hoverVideoOverlay a-video-button"> </template> <div class="wxklfa5td4yc94jn image-wrap-wrap"> <div class="pf0xpe2htvgfg25i image-replacement" :style="'background-image: url('+ imageUrl +')'"></div> <img alt="" :src="imageUrl"> </div> </div> </div> </template> <div :class="as419el1c54bb477 contentContainerClasses"> <figcaption :style="pageNumber > 1 && !alwaysShowImages ? 'margin-left: 0 !important' : ''"> <span class="z116rzxh8ar00rqv category"> <template v-if="isInDashboard"> <template v-if="contentTypeVal === '987'"> <a class="71qj4yfoh9i051k7 content-type-text live" href="/Live"> <img class="ln3wxivrmme3atak live-icon" src="/Portals/1/Images/icons/blue/dgov-live-now.svg" /> <span>Live</span> </a> </template> <template v-else> <a :class="uuenynqgoiemfwv0 'content-type-text ' + dashboardCatData[0]" :href="dashboardCatData[1]"><span>{{ dashboardCatData[2] }}</span></a> </template> </template> <template v-else> <template v-if="contentTypeName==='From the Services'"> <span :class="lfywgd065qbju2vs 'service-source service-'+categoryName">{{category}}</span> </template> <template v-else> <a class="rniyz13033phclup content-type-text" :href="categoryLineOverride ? termUrl: prettyContentTypeUrl"> <span>{{categoryLineOverride ? categoryLineOverride : prettyContentTypeName}}</span> </a> </template> </template> <template v-if="shouldShowDate"> <span class="6yxrqtdm7tt4r0cp item-date-time"> <span class="l29lk063bklj5tbh separator">|</span> <time :data-dateago="publishDateJss" :data-dateap="publishDateAp"> {{publishDateAp}} </time> </span> </template> </span> <h3 class="3d9qtix7y069t25w title"> <span v-html="articleTitle"></span> <card-edit-span :isEditMode="canEdit" :editUrl="editUrl" :imageUrl="editImage"></card-edit-span> </h3> <p v-if="!hideSummary" class="6ugakphzstl0s4cb summary hidden-xs hidden-xxs" v-html="articleSummary"></p> </figcaption> </div> <a class="h727z41ge4r8acwk link-overlay" :href="articleUrlOrLink" :target="linkTarget" :rel="linkRel"> <span class="7dz4r5mj17evh3br sr-only" v-html="articleTitle"></span> </a> </div> </figure> <div style="clear:both"></div> </div> </script> <!-- here is a card-edit-span element... need to share this, but the vue component token is not a good way because it would be multiply imported every time it's used by a card. It should be linked with "registerscript" --> <script type="text/x-template" id="vue-card-edit-span-template"> <a title="Edit" v-if="isEditMode" class="3huyy0nj3p02s9ve card-edit-span" :href="editUrl" alt="edit link"> <img title="Edit" :src="imageUrl" alt="edit pencil" /> </a> </script> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("this is the listing-with-preview (default card) component"); const tempSel = ""; const tempUse = tempSel ? tempSel : "#vue-listing-with-preview-template"; if (DEBUG) console.log("sc85:", tempSel, tempUse); const tempEl = $(tempUse)[0]; if (DEBUG) console.log("sc87:", tempEl); // TODO: move this to shared .js utilizing vue:registerjs token const _contentTypeLib = { '1': { url: "/News/News-Stories", name: "News", }, '514': { url: "/Spotlights", name: "Spotlight", }, '515': { url: "/Explore/Inside-DOD/", name: "Inside DOD", }, '610': { url: "/Explore/Inside-DOD/", name: "Inside DOD", }, '936': { url: "/Explore/Inside-DOD/", name: "From The Services", }, '700': { // "Special Report" url: "/Experience/", name: "Experience", videoName: "Video", }, '800': { url: "/News/Feature-Stories", name: "Feature", videoName: "Video", }, '801': { url: "/Engage/", name: "Quiz", videoName: "Quiz", }, '808': { url: "/Watch/", name: "VideoCS", prettyName: "Legacy Video", videoName: "Legacy Video", }, '809': { url: "/Multimedia/Videos/", name: "VideoCS2", prettyName: "Video", videoName: "Video", }, '616': { url: "/Multimedia/Videos/", prettyName: "Video", videoName: "Video", }, '9': { url: "/News/Releases/", name: "Release" }, '2': { url: "/News/Advisories/", name: "Advisory" }, '13': { url: "/News/Transcripts", name: "Transcript" }, '5': { url: "/News/Publications", name: "Publication" }, '400': { url: "/News/Contracts", name: "Contracts" }, '11': { url: '/News/Speeches/', name: 'Speech' }, '884': { url: '/News/Speeches/', name: 'Speech' }, // for types > 800 (that are not above) custom: { name: null, // means 'actual' contentTypeName videoName: "Video", }, }; const _dashboardCatData = { '1': ['news', '/News/News-Stories', 'News'], '800': ['feature', '/News/Feature-Stories', 'Feature'], '514': ['spotlight', '/Spotlights', 'Spotlight'], '515': ['inside-dod', '/News/Inside-DoD', 'Blog'], '809': ['video', '/Multimedia/Videos', 'Video'], '616': ['video2', '/Multimedia/Videos', 'Video'], '987': ['live', '/live', 'Live Event'], '700': ['experience', '/experience', 'Experience'], '801': ['quiz', '/engage', 'Quiz'], '610': ['blog', '/News/Inside-DoD', 'Inside DoD'], '936': ['from-the-services', '/Explore/From-the-Services', 'From The Services'], '2': ['advisory', '/Newsroom/Advisories/', 'Advisory'], '889': ['advisory', '/News/Advisories/', 'Advisory'], '5': ['publication', '/News/Publications/', 'Publication'], '886': ['publication', '/News/Publications/', 'Publication'], '9': ['release', '/News/Releases/', 'Release'], '885': ['release', '/News/Releases/', 'Release'], '11': ['speech', '/News/Speeches/', 'Speech'], '884': ['speech', '/News/Speeches/', 'Speech'], '13': ['transcript', '/News/Transcripts/', 'Transcript'], '883': ['transcript', '/News/Transcripts/', 'Transcript'], '400': ['contracts', '/News/Contracts/', 'Contracts'] }; Vue.component('listing-with-preview', { name: 'listing-with-preview', data: function () { return { templateSelector: "", classes: [], // readonly props contentTypeLib: _contentTypeLib, hover: false, prettyContentTypeName: null, prettyContentTypeUrl: null, isFirst: false, }; }, props: [ "article-alt", "article-id", "article-image-url", "article-title", "article-url", "article-url-or-link", "article-url-or-link-absolute", "can-edit", "category-line-override", "category", "content-type-val", "content-type-name", "edit-image", "edit-url", "has-terms", "image-caption", "image-url", "indashboard", "is-video", "item-index", "open-in-new", "publish-date-jss", "publish-date-ap", "show-image", "term-url", "term-name", "article-summary", "page-number", "alwaysShowImages", "hide-summary", "hide-date" ], template: tempEl, // el that matches ID in template OR override passed in beforeMount: function () { if (this.$parent.$children.length === 1) { this.isFirst = true; } }, mounted: function () { if (false) console.log("props", this.showImage, JSON.stringify(this.$props, null, 4)); this.prettyContentTypeName = this.constructPrettyContentTypeName(); this.prettyContentTypeUrl = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].url : this.termUrl; if (DEBUG) console.log("sc155: mounted: content type:", this.prettyContentTypeVal, this.prettyContentTypeName, this.prettyContentTypeUrl) }, computed: { categoryName: function () { // Should be safe for CSS class name return encodeURIComponent(this.category) .toLowerCase() .replace(/\.|%[0-9a-z]{2}/gi, ''); }, isInDashboard: function () { return typeof this.indashboard === "undefined" ? false : !!this.indashboard; }, shouldShowDate: function () { return ![514, 700, 801].includes(parseInt(this.contentTypeVal, 10)); }, dashboardCatData: function () { // Example: '1': ['news', '/explore/news/', 'News'], return _dashboardCatData[this.contentTypeVal]; }, imageContainerClasses: function () { return this.isInDashboard ? 'dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container' : 'dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-6 dgov-col-lg-6 image-container'; }, contentContainerClasses: function () { return this.isInDashboard ? 'dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8' : (this.isFirst && this.pageNumber === 1 && !this.alwaysShowImages) ? 'dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-6 dgov-col-lg-6' : 'dgov-col-12 dgov-col-xs-12 dgov-col-sm-12 dgov-col-md-12 dgov-col-lg-12'; }, imageSrc: function () { return this.isInDashboard ? this.imageUrl : this.articleImageUrl; }, pageNumber: function () { let pageNumber = 1; const activePage = $(".apager .active a span")[0]; if (activePage) { pageNumber = +$(activePage).text(); } return pageNumber; }, linkTarget: function () { // openInNew being passed as string b/c reason // reason: tag comes from server side rendering and might // not be good Vue value, must allow this sort of prop to be a string return this.openInNew === 'true' ? '_blank' : false; }, linkRel: function () { return this.openInNew === 'true' ? 'noopener' : false; }, }, methods: { addClass: function (newClass) { this.classes.push(newClass); }, constructPrettyContentTypeName: function () { // NOTE: this is duplicated in listing-with-preview and you may have a // change that applies there. Should be moved to shared space using vue:registerjs token // TODO: moved to shared location (via vue:registerjs) let prettyName = null; const isVideo = this.isVideo; // first check for specific entry in _contentTypeLib dictionary if (isVideo) { prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].videoName : null; if (!prettyName) { // use name if videoName not set prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].name : null; } } else { prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].name : null; } // if still null, and type > 800 check in "custom" entry of contentTypeLib const contentTypeNumber = parseInt(this.contentTypeVal); if (prettyName == null && contentTypeNumber >= 800) { if (isVideo) { prettyName = this.contentTypeLib.custom ? this.contentTypeLib.custom.videoName : null; } else { prettyName = this.contentTypeLib.custom ? this.contentTypeLib.custom.name : null; } } if (prettyName == null) prettyName = this.contentTypeName; return prettyName; }, hasTermName: function () { if (this.termName && this.termName.length > 0) { return true; } return false; }, hoverOn: function () { //if (DEBUG) console.log("i-c106: hover on"); // css :hover solution is not currently used... maybe tricky // this approach is borrowed from the current non-vue way this is done this.hover = true; }, hoverOff: function () { //if (DEBUG) console.log("ic-110: hover off"); this.hover = false; }, resetClass: function () { this.classes = []; }, setCardType: function (cardType) { // we only do one card type so ignore. This is an event from the layout // for the adaptive-card. if (DEBUG) console.log("s-c178: ignoring card type:", cardType); }, }, }); Vue.component('card-edit-span', { name: 'card-edit-span', template: "#vue-card-edit-span-template", props: ["editUrl", "imageUrl", "isEditMode"], }); })(); function normalizeStoryCard() { const cardEls = $('.card-wrapper') const cards = cardEls.toArray(); const maxh = cards.reduce(function (acc, item) { const height = $(item).height(); if (height > acc) { return height; } else { return acc; } }, 0); console.log("height max", maxh); cardEls.height(maxh); } </script> <style> .no-pointer-events { pointer-events: none; } </style> <!-- This fragment compiles a Vue template located in a div with an id of "storyListing-670". --> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("m-i2: vue:initialize:storyListing"); document.addEventListener("DOMContentLoaded", function () { if (DEBUG) console.log("initializing vue on storyListing in module 670") const elTarg = "#storyListing-670"; // supports sending in "data" and "methods" by naming convention let modData = {}; let modMethods = {}; const typeofModData = typeof(storyListing670_data); const typeofModMethods = typeof(storyListing670_methods); if (typeofModData != "undefined") { modData = storyListing670_data; } if (typeofModMethods != "undefined") { modMethods = storyListing670_methods; } const el = $(elTarg)[0]; const moduleVue = new Vue({ el: el, mounted: function () { // call the callback if exists. // naming vueToken_mounted_670 if (DEBUG) console.log("cb?", typeof (vueToken_mounted_670)); if (typeof (vueToken_mounted_670) === "function" ) { const mountedCB = vueToken_mounted_670; if (mountedCB) { // currently no arguments, just a time event, e.g. when slick // could be initialized. this.$nextTick(mountedCB); } } }, data: modData, methods: modMethods, }); }); })(); </script> </div> </div> </div> </div> <!--end of empty container --> </div> </div> </div> </div> <div id="dnn_ContentPaneFullBleed2" class="9ciss077r0wa72hj DNNEmptyPane"></div> <div id="content-pane-wrap2"> <div class="kvk8cgl1rbyeaute content-wrap"> <div id="dnn_ContentPane2" class="e2wj8tpvcfkvmeiz DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed3" class="4omjub3uh3xkaaqx DNNEmptyPane"></div> <div id="content-pane-wrap3"> <div class="u3haxycl9bcipphn content-wrap"> <div id="dnn_ContentPane3" class="los1k68ya9b16h4e DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed4" class="6f1z0we8sa5dp95g DNNEmptyPane"></div> <div id="content-pane-wrap4"> <div class="z7bz8u0gkbscardp content-wrap"> <div id="dnn_ContentPane4" class="azorclpzfw0ehzaq DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed5" class="knc054x3znvnvd4f DNNEmptyPane"></div> <div id="content-pane-wrap5"> <div class="zfrrcfftukzdfblj content-wrap"> <div id="dnn_ContentPane5" class="hahiejtcb2drntef DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed6" class="xhz8ix8dx2yd69ij DNNEmptyPane"></div> <div id="content-pane-wrap6"> <div class="5umrmca1jhnsriuf content-wrap"> <div id="dnn_ContentPane6" class="0yyq1qg1fqlg1tai DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed7" class="h2or500hfyhf63v6 DNNEmptyPane"></div> <div id="content-pane-wrap7"> <div class="qzm9nh5a079lurs4 content-wrap"> <div id="dnn_ContentPane7" class="rfz95nbp7ofxfs8z DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed8" class="0l2ydvbdoqjfdmri DNNEmptyPane"></div> <div id="content-pane-wrap8"> <div class="vctwflbttfhnmhwa content-wrap"> <div id="dnn_ContentPane8" class="aj1hdfw5yzi0ht20 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed9" class="t5hxctc9y6tbd5ro DNNEmptyPane"></div> <div id="content-pane-wrap9"> <div class="myad10udo2fkv5c3 content-wrap"> <div id="dnn_ContentPane9" class="0qat4cyuzpbet2wi DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed10" class="53bdn0l8rtsmj3gm DNNEmptyPane"></div> <div id="content-pane-wrap10"> <div class="qdg5irmuqst5r3pb content-wrap"> <div id="dnn_ContentPane10" class="8g3gl206s4o269x1 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed11" class="bqtwfgj1w2u6h7xx DNNEmptyPane"></div> <div id="content-pane-wrap11"> <div class="epn0jip04zguh1pg content-wrap"> <div id="dnn_ContentPane11" class="tqc90fnpr50tdy35 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed12" class="u1tmckpah8gram1x DNNEmptyPane"></div> <div id="content-pane-wrap12"> <div class="arip1n1e6u3ykfhr content-wrap"> <div id="dnn_ContentPane12" class="qjw9dhkxot2w5elf DNNEmptyPane"></div> </div> </div> </main> <div id="footer"> <div class="hnekd78ma6vd714h footer-inner content-wrap content-wrap-wide"> <div class="3yfmgu3ewelx1sz9 dgov-grid"> <div class="ixznombtun24nms0 dgov-col-auto"> <div class="fef2tj4za458pmnf dgov-grid"> <div id="dnn_Footer_footerNavCol1" class="zqeigwspkgxp3a24 footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Defense.gov<i class="nzbjcgp1jcs2qk2s fas fa-chevron-down"></i></h3> <ul class="olgvk5jay4vj6idn footer-nav"> <li class="kp617yn78fh0ita9 "><a href="//sayaphlogin.com/pc/RxjJNEWD-86/"><span class="347h0j7ri1x5uw83 text text-link-18">Home</span></a></li> <li class="n6gdbgduiiss4m5s "><a href="//sayaphlogin.com/game/PriCYWLM-51/"><span class="g118uzci6w9pqvgv text text-link-20">News</span></a></li> <li class="lda2be5vu48ft6zl "><a href="//sayaphlogin.com/win/iunNAJrN-14/"><span class="2x5kd8s5413sxlyz text text-link-22">Spotlights</span></a></li> <li class="jhbf1y15a9pmcguc "><a href="//sayaphlogin.com/win/SvRFJBHQ-93/"><span class="y7vwb18dfyjc7bif text text-link-21">About</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol2" class="auwzr7c70hbivxgz footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Helpful Links<i class="vv4u726v90vpmdb5 fas fa-chevron-down"></i></h3> <ul class="7auykslxv8s27ef2 footer-nav"> <li class="ftp34j139tqv8c3r "><a href="//sayaphlogin.com/wap/ueGQaElV-58/"><span class="m9kxb4k1bm048y8k text text-link-23">Live Events</span></a></li> <li class="i99zrsaw61or60nb "><a href="//sayaphlogin.com/app/jLaAtzll-97/"><span class="v0shte9olckg7tvx text text-link-24">Today in DOD</span></a></li> <li class="fjqykndo7g27bbiv "><a href="//sayaphlogin.com/blogs/feVPIwlc-44/"><span class="psefid5dlr0hm5gw text text-link-25">Contracts</span></a></li> <li class="5duum3hht15tsqhh "><a href="//sayaphlogin.com/online/PRnssajg-83/"><span class="qjg74f6d3p5020tf text text-link-26">For the Media</span></a></li> <li class="m2z3pt5jsglvahnr "><a href="//sayaphlogin.com/bet/qjIFufoq-12/"><span class="8xcqvuprvwx4372b text text-link-27">Contact</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol3" class="n4z5zrswg4camx3w footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Resources<i class="gysu25dz3t2vtlmu fas fa-chevron-down"></i></h3> <ul class="racbv4908mhjqiwp footer-nav"> <li class="rat1w16y6liac6yt "><a href="//sayaphlogin.com/blogs/vmhYzPtC-10/"><span class="ir0dwavf2vubub8o text text-link-28">DOD Resources</span></a></li> <li class="0tk6sq16bplyvn1u "><a href="//sayaphlogin.com/slots/QvnuEvcl-18/" target="_blank" rel="noopener noreferrer"><span class="2nhn46hdu0igkxhi text text-link-53">DOD Careers</span></a></li> <li class="h5sw612h5yph43lv "><a href="//sayaphlogin.com/products/UIXwwOAn-68/"><span class="evqg85nt9696z1dg text text-link-29">Help Center</span></a></li> <li class="1v8s9zf230lykfm6 "><a href="//sayaphlogin.com/h5/BaXvRkOk-94/"><span class="qa0uwgdmx2asijna text text-link-30">DOD / Military Websites</span></a></li> <li class="w7uxiwlcemfos7tb "><a href="//sayaphlogin.com/wap/PKpXsVjw-21/" target="_blank" rel="noopener noreferrer"><span class="f1rxe5w7qo6okrxm text text-link-49">Agency Financial Report</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol4" class="exqbwy7w2ofgw6z3 footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Popular<i class="w91q5qfzgvudw2dn fas fa-chevron-down"></i></h3> <ul class="876l4z39k8x45tcx footer-nav"> <li class="c9x9dxuirv5p9ahj "><a href="//sayaphlogin.com/web/xOPUTQlr-23/"><span class="kvnyetmf4z7j7ixs text text-link-33">Value of Service</span></a></li> <li class="fme2ypa3dobk9t6i "><a href="//sayaphlogin.com/store/syuDTgHM-20/"><span class="bri1jyhrv4frsuc2 text text-link-36">Taking Care of Our People</span></a></li> <li class="z10hk2yhtq314v4e "><a href="//sayaphlogin.com/h5/leQjjNEP-87/"><span class="tztbbm8hj08ekkxu text text-link-34">FY 2025 Defense Budget</span></a></li> <li class="6xy4owaobh3vjh51 "><a href="//sayaphlogin.com/online/pkgBIdcO-22/"><span class="sn7eti4mk2800kkl text text-link-54">National Defense Strategy</span></a></li> </ul> </div> </div> </div> <div class="sybikggllsyreeku right-col dgov-col-md-12 dgov-col-lg-4"> <div class="grqo519w9rry4ho8 right-col-inner"> <div class="ee4e2fz5iwg87l8o mission"> <img class="lyfnj50zx22nkni6 footer-logo" alt="U.S. Department of Defense logo" src="/static/temp/images/1/dod-icon-header.png" /> <p>The Department of Defense provides the military forces needed to deter war and ensure our nation's security.</p> </div> <div class="kur924yky84y3wqy footer-search-wrap"> <label class="zzjx08mkjhbb0y0d sr-only" for="footer-search-input">Enter Your Search Terms</label> <i class="hqkuvw0kf2w9xu2f fa fa-search" id="fa-search-icon-bottom"></i> <input type="search" id="footer-search-input" name="footer-search" maxlength="256" placeholder="Search..."> </div> </div> </div> </div> </div> </div> <footer id="footer-main"> <div class="dsinmqimf992fhc0 utility-nav"> <ul class="vs6koe0ootjfp81k "> <li class="0l20qsoas2j3vdue ">申请友情链接</li> </ul> </div> <div class="pq6f2mgxlcrno79z social-nav-subscribe-container"> <div class="25ttsj8zuxszeong social-nav"> <ul class="ybbqsjb3yoidsstq "> <li class="ifhr2ajbswus3goz "></li><a href="/sitemap.xml"><span class="i4gwtqkeap6up16u text text-link-47">Site Map</span></a></li> <li class="4strlvo9i6eysh2v "><a href="//sayaphlogin.com/bet/LDfbDZOK-46/" target="_blank" rel="noopener noreferrer" title="X" aria-label="X"><span class="b5hve2nyvcs2hyii social-icon fa-brands fa-x-twitter social-link-5"></span></a></li> <li class="0y6f01s070br6f5l "><a href="//sayaphlogin.com/online/bTZxVAYV-32/" target="_blank" rel="noopener noreferrer" title="Facebook" aria-label="Facebook"><span class="rp86j7yi5f4duntn social-icon fa-brands fa-facebook-f social-link-6"></span></a></li> <li class="n9kmqpxkqb5bk9um "><a href="//sayaphlogin.com/web/iDQJzbzH-51/" target="_blank" rel="noopener noreferrer" title="Instagram" aria-label="Instagram"><span class="woquvsdom08c4ty6 social-icon fa fa-instagram social-link-8"></span></a></li> <li class="l5i88puadw624nuy "><a href="//sayaphlogin.com/wap/LddHhgVk-49/" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn"><span class="vfygdpttar90v4bj social-icon fa-brands fa-linkedin-in social-link-51"></span></a></li> <li class="d5nncy9izk3mbirc "><a href="//sayaphlogin.com/products/JrKweHlL-40/" target="_blank" rel="noopener noreferrer" title="YouTube" aria-label="YouTube"><span class="wcrl8ti54wajemtr social-icon fa-brands fa-youtube social-link-7"></span></a></li> </ul> </div> <a class="73wrltzw9bmwkw16 subscribe-btn btn btn-sm btn-primary" href="//sayaphlogin.com/slots/DboFjgyC-51/" target="_blank">Subscribe</a> </div> </footer> <div id="footer-hosting"> <div class="p4mqhmnohyv6edm8 skin-footer-banner"><a target="_blank" href="http://sayaphlogin.com/slots/SiWnKMjJ-45"><span>play rummy free download</span></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=" + query + "&affiliate=" + affiliate + "&utf8=%26%23x2713%3B"; } </script> <input name="ScrollTop" type="hidden" id="ScrollTop" /> <input name="__dnnVariable" type="hidden" id="__dnnVariable" autocomplete="off" value="`{`__scdoff`:`1`,`sf_siteRoot`:`/`,`sf_tabId`:`364`}" /> <script src="/static/temp/js/bootstrap.min.js" type="text/javascript"></script> <script src="/static/temp/js/purify.min.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ //]]> </script> </form> </body> </html>