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.

gambling review sitesPopPop 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="jnvj6n1wusefxrdr related ntext"> <div class="rhrqf9ocfsfexbb7 item"> <span class="n841jkyabqis6v2o subtitle">Spotlight:</span> <a class="l8j7cv4ykh14mvr6 article-link" href="//sayaphlogin.com/m/aaxXwVpU-26/">types of gambling games</a> </div> <div class="te5ni7qrc593xxjb item"> <span class="25l9nw97cu49nq9x subtitle">Spotlight:</span> <a class="a7diq2wpzyhwltmn article-link" href="//sayaphlogin.com/online/ribwiIob-73/">gambling cards emoji</a> </div> <div class="eyeelfxssm2fw6fp item"> <span class="zuxldh0f6hwnlgi8 subtitle">Spotlight:</span> <a class="lzx08vls2so8wf0x article-link" href="//sayaphlogin.com/web/sQUModQz-29/">gambling boat louisville ky</a> </div> <div class="mqbymeb43z0ew3uc item"> <span class="ydatj02cttpz32h7 subtitle">Spotlight:</span> <a class="rv11vcvv0tuqdb13 article-link" href="//sayaphlogin.com/game/CEjikjGG-85/">spanish gambling sites</a> </div> <div class="br63u7nrui89ugmi item"> <span class="rsnvlryn1vpgxf6x subtitle">Link:</span> <a class="6dwhf7hevsoc450f article-link" href="//sayaphlogin.com/blogs/HfNpiQym-83/" target="_blank" rel="noopener">teen patti hack file links</a> </div> </div> </div> <div class="s8ucnix92e982cki tags"> <a href='//sayaphlogin.com/app/oolqyqOE-56/'>buy yantra for gambling online in india</a> <a href='//sayaphlogin.com/slots/kJqOaPpt-81/'>reno nevada gambling</a> <a href='//sayaphlogin.com/jogo/HhIvsizS-73/'>easy gambling games</a> <a href='//sayaphlogin.com/wap/UYMhhuDp-21/'>online gambling sites indiana</a> <a href='//sayaphlogin.com/win/TKjJNHsS-10/'>curacao gambling</a> <a href='//sayaphlogin.com/game/zhyASBqh-89/'>gamble in dark knight</a> <a href='//sayaphlogin.com/products/ZwkgAcWB-25/'>is day trading gambling</a> <a href='//sayaphlogin.com/store/KwdLmuMt-86/'>gambling addiction terminology</a> <a href='//sayaphlogin.com/h5/pCoeZizS-31/'>raylene seth gamble</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="7e9a14gshmbxn29h content-wrap"> <div id="dnn_ContentPane"> <div class="61et66lhjxiwpekh DnnModule DnnModule-DNN_HTML DnnModule-2787"><a name="2787"></a> <div class="fqpj8jhsmdfs1f49 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="tgm5vd35qpxn0qui DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr2787_HtmlModule_lblContent" class="4oz41hrtwc5y0sg4 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="xswuuubf5cc916kw subscribe"> <article> <h3>Subscribe to Defense.gov Products</h3> <div class="nn2gk76px4uarbq1 dgov-grid"> <div class="rvjmkmtlwseprax4 dgov-col-sm-7 dgov-col-xs-12"> <p>Choose which Defense.gov products you want delivered to your inbox.</p> </div> <div class="yqbggl3l3lfh4kso dgov-col-sm-5 dgov-col-xs-12"><a class="c27ymum0ja2qj2gk btn btn-primary" href="//sayaphlogin.com/products/acqQgqvV-98/">Subscribe </a></div> </div> </article> </div> </div> </div><!-- End_Module_2787 --> </div> </div> <!--end of empty container --> </div> <div class="pbedqddgpjk2n38q DnnModule DnnModule-ArticleCSDashboard DnnModule-670"><a name="670"></a> <div class="5j9jgchsnl4ufqw1 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="d5lhyyj7r9rqxwnn tab-title"><span>Related Stories</span></h2> <div id="dnn_ctr670_ModuleContent" class="jhd3l1uj0fbr1bhw DNNModuleContent ModArticleCSDashboardC"> <div id="dnn_ctr670_Dashboard_ph"> <div id="storyListing-670"> <div id="alist-suggest" class="woihfbee0nryg6wm alist stories external-news-list"> <div class="hhrcjbme9letcoc5 spinner3" style="display: none;"> <div class="9e8nc8zaf0c8vygk bounce1"></div> <div class="tqgpiw2p4430e42f bounce2"></div> <div class="thh1mkyofz2ump76 bounce3"></div> </div> <div class="l2ymtqc0ixrpo51y alist-inner alist-more-here"> <div class="692io2oa8eergbvu feature-template"> <div class="k3qgfclr385uy2j4 feature-template-container"> <div class="v52xam4q2f63yl0v dgov-grid"> <div class="wiw7nzurgkrvnswx dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="bsor6r05yf88n73b listing-with-preview item explore-item"> <figure> <div class="hre9p2urd5q1omfa dgov-grid dgov-grid-bleed"> <div class="qsr8x96weq993vek dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="0qp3yj6ddvh3u9c8 image-wrap"> <!----> <div class="vu5eiezod46x9258 image-wrap-wrap"> <div class="mhcasqnf3ml2yro7 image-replacement" style="background-image: url(/images/zdict.png);"></div> <img alt="" src="/images/ttjsqslt.jpg"> </div> </div> </div> <div class="54xn4kef0en7stc2 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="ahzon5v0ovpm1aii category"><a href="//sayaphlogin.com/pc/UdDXgkLW-32/" class="8bclqb5p9lrk89d0 content-type-text feature"><span>NEWS</span></a> <span class="9dttcejfl0wkfpii item-date-time"><span class="srb6mutyo7ye8wi6 separator">|</span> <time data-dateago="2024-11-29 17:24:11" data-dateap="{日期}">2024-11-29 17:24:11</time></span></span> <h3 class="ona1srxg92e5xf0h title"><span>iates 680 gambling, fraud suspec</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/m/ruTAAeHo-52/" class="n2ngiwl5ut0sbch9 link-overlay"><span class="492cxfl77zerfzu3 sr-only">ple's unemployment rate sees sli</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="0lxdfif1qbmhs7es dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="uyrgqeyosvi5n7l0 listing-with-preview item explore-item"> <figure> <div class="hi505ru3eny1hj6v dgov-grid dgov-grid-bleed"> <div class="o40opjggjh7xz126 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="nxxo0srlmjruk7hm image-wrap"> <!----> <div class="qwsg5kvh9012qudz image-wrap-wrap"> <div class="ty8ctgj43fgkaqbi image-replacement" style="background-image: url(/images/yilko.jpg);"></div> <img alt="" src="/images/ikagy.jpg"> </div> </div> </div> <div class="q18xnvdfv1sejdh2 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="o3jyebo3udv5wsxn category"><a href="//sayaphlogin.com/jogo/IUbUXnmk-46/" class="3w8yux41z8eme3dg content-type-text feature"><span>NEWS</span></a> <span class="f3h1yejqzdn5b5m2 item-date-time"><span class="vwoq5wa8ppb1ypiy separator">|</span> <time data-dateago="2024-11-29 17:24:11" data-dateap="{日期}">2024-11-29 17:24:11</time></span></span> <h3 class="jdsxahlx0urf65xk title"><span>Improper test run faulted for fa</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/store/FQIZgOxl-49/" class="2x9t8pky73xrm5x7 link-overlay"><span class="y9b1hmfct292ku77 sr-only">Improper test run faulted for fa</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="746wqp8hxb7d08kn dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="d5t933pr94mlkjzq listing-with-preview item explore-item"> <figure> <div class="sik8o68zx9v5sayg dgov-grid dgov-grid-bleed"> <div class="alkr14kqz6zbw1kf dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="zzhvbenptazp7hcw image-wrap"> <!----> <div class="ooyrrcec1257jevj image-wrap-wrap"> <div class="xfgrhd8ysyp34n3m image-replacement" style="background-image: url(/images/hdpqc.png);"></div> <img alt="" src="/images/resized_image_190x120.png"> </div> </div> </div> <div class="iyvvb8j142cj7vk3 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="sflb64kkzlbfriy7 category"><a href="//sayaphlogin.com/pc/rIovStkV-15/" class="oc2wlld5axpi9hbv content-type-text feature"><span>NEWS</span></a> <span class="9irbtx5hnm9ig9p7 item-date-time"><span class="7fo0ntuguzdiaqik separator">|</span> <time data-dateago="2024-11-29 17:24:11" data-dateap="{日期}">2024-11-29 17:24:11</time></span></span> <h3 class="og3qhzjm4aozg0kk title"><span>Drilling begins</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/game/cLJQTjrM-36/" class="znggu3j575xyh19c link-overlay"><span class="9lntpsxll5apz5gk sr-only">, exits recorded in the first qu</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="uj749k16yyvfqd9d dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="ivv8jv5w9r4r1qxb listing-with-preview item explore-item"> <figure> <div class="m9inxntvsx5jee3j dgov-grid dgov-grid-bleed"> <div class="mvtxwvodrfct7h6r dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="g83xip0knz3j4eks image-wrap"> <!----> <div class="mcg3n21bx3yhnrtc image-wrap-wrap"> <div class="i8d9l2zp5hjxbtpy image-replacement" style="background-image: url(/images/zdict.png);"></div> <img alt="" src="/images/zdict.png"> </div> </div> </div> <div class="gh737z6nl14t2aab dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="8hthta5kp950716x category"><a href="//sayaphlogin.com/app/fIQrWMwM-80/" class="tc0djytr4yzblkb1 content-type-text feature"><span>NEWS</span></a> <span class="l498t455jj0ydqb2 item-date-time"><span class="8jbc7k6qp8jcnzuo separator">|</span> <time data-dateago="2024-11-29 17:24:11" data-dateap="{日期}">2024-11-29 17:24:11</time></span></span> <h3 class="sgu2178lnzgo06a2 title"><span>ple's unemployment rate sees sli</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/br/aFYWkrSk-98/" class="vt1pzbfgn72e7zow link-overlay"><span class="drh89pp681tb8vzm sr-only">Chi</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> </div> </div> <!----> <div class="grfps9sg1m1xgo4b bottom-target"></div> </div> </div> <br> <br> <div class="pubdrv2ii51zo3gw pager"><button class="ja949nqes00g2am9 alist-more-button btn btn-primary btn-primary-ghost" style="display: none;"> Load More </button> <div class="yrh9ak3t3770es8e number-pager"> <div class="2jhmy94ec4niry85 hidden-xs"></div> <div class="co2mgwdvfeta7jvp 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="ojsykq0jfdkx0u3l feature-template"> <div :class="xr9rvf7li1zzanc4 'feature-template-container' + (removeGrid ? '' : ' dgov-grid dgov-grid-full')"> <slot></slot> </div> <div class="t77vxv9ffsfoq3ti more-row" v-if="thereAreMoreToView()"> <a class="7m691m81flwiecd4 btn btn-default btn btn-insidedod btn-insidedod-ghost" v-on:click="viewMore" :title="moreText">Load More</a> </div> <div class="a83ryyipegmk4g11 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="8z5uyue11onc8x6k listing-with-preview item explore-item"> <figure> <div class="p5713j8ljs1nf1fm dgov-grid dgov-grid-bleed"> <template v-if="pageNumber == 1 || alwaysShowImages"> <div :class="iso9zof9b2efhtft imageContainerClasses"> <div class="4dhhiayutw534u7l image-wrap" v-bind:class="mktg4ye1ma4yaq43 {'video-wrap-container no-pointer-events': isVideo}"> <template v-if="isVideo"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-default.png" class="ceazo9i7bdedj5g1 defaultVideoOverlay a-video-button"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-hover.png" class="ly2d71o76f89564n hoverVideoOverlay a-video-button"> </template> <div class="axldqpf8d1wvp26f image-wrap-wrap"> <div class="uzbqdke6io7g6lud image-replacement" :style="'background-image: url('+ imageUrl +')'"></div> <img alt="" :src="imageUrl"> </div> </div> </div> </template> <div :class="g7z0i1r2xt82et91 contentContainerClasses"> <figcaption :style="pageNumber > 1 && !alwaysShowImages ? 'margin-left: 0 !important' : ''"> <span class="1a01ubcsp28qvsy6 category"> <template v-if="isInDashboard"> <template v-if="contentTypeVal === '987'"> <a class="z3l078d2rk4o6m5g content-type-text live" href="/Live"> <img class="35r7ey06o5lfh6j5 live-icon" src="/Portals/1/Images/icons/blue/dgov-live-now.svg" /> <span>Live</span> </a> </template> <template v-else> <a :class="i217xv85tdu4f046 '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="vcdqcsflf15bmd2p 'service-source service-'+categoryName">{{category}}</span> </template> <template v-else> <a class="k9h4wldk1uspklm6 content-type-text" :href="categoryLineOverride ? termUrl: prettyContentTypeUrl"> <span>{{categoryLineOverride ? categoryLineOverride : prettyContentTypeName}}</span> </a> </template> </template> <template v-if="shouldShowDate"> <span class="ocs6oid4tqfx11ti item-date-time"> <span class="qbtiezxpl7f2o6yy separator">|</span> <time :data-dateago="publishDateJss" :data-dateap="publishDateAp"> {{publishDateAp}} </time> </span> </template> </span> <h3 class="n7a21w8sofc26ufx title"> <span v-html="articleTitle"></span> <card-edit-span :isEditMode="canEdit" :editUrl="editUrl" :imageUrl="editImage"></card-edit-span> </h3> <p v-if="!hideSummary" class="xrs3gqmtwyfy3nfb summary hidden-xs hidden-xxs" v-html="articleSummary"></p> </figcaption> </div> <a class="ziccm6lamshie0h6 link-overlay" :href="articleUrlOrLink" :target="linkTarget" :rel="linkRel"> <span class="7etb36lya1fyyfo3 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="130nk0f9xkjeq9lk 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="726c0zpovd08tynh DNNEmptyPane"></div> <div id="content-pane-wrap2"> <div class="4mbwxy640skfvxmf content-wrap"> <div id="dnn_ContentPane2" class="arpdga8imk2bl0m2 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed3" class="0075rf888hu1o1l6 DNNEmptyPane"></div> <div id="content-pane-wrap3"> <div class="xjzucafq5psvzzo8 content-wrap"> <div id="dnn_ContentPane3" class="af64fb7bi3h35a7d DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed4" class="84pmcy1d6dzfpgh8 DNNEmptyPane"></div> <div id="content-pane-wrap4"> <div class="y5ajw1m26fatfps8 content-wrap"> <div id="dnn_ContentPane4" class="j0s7pvp46bp3iw8v DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed5" class="ovnzcul1i6vd07p2 DNNEmptyPane"></div> <div id="content-pane-wrap5"> <div class="9q2ruvzqlz2haj9s content-wrap"> <div id="dnn_ContentPane5" class="3i1gzla4puh08uhd DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed6" class="v27siibkj6r0a2q1 DNNEmptyPane"></div> <div id="content-pane-wrap6"> <div class="udycoxdl4gskvwwx content-wrap"> <div id="dnn_ContentPane6" class="e33awu95z6pzhpoz DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed7" class="scluq3g5ea393h2k DNNEmptyPane"></div> <div id="content-pane-wrap7"> <div class="5i059jmw66x9zbug content-wrap"> <div id="dnn_ContentPane7" class="uer4xkl9rcndgssy DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed8" class="anhpqw0myfecjh0i DNNEmptyPane"></div> <div id="content-pane-wrap8"> <div class="6ou2aea1u9px1biv content-wrap"> <div id="dnn_ContentPane8" class="zdeoawbkb9yzf78t DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed9" class="z2nv0depie4vgeaa DNNEmptyPane"></div> <div id="content-pane-wrap9"> <div class="ww6213t735m3101y content-wrap"> <div id="dnn_ContentPane9" class="pzvgeq8jrokhm3fj DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed10" class="f30qwk46g4aa028t DNNEmptyPane"></div> <div id="content-pane-wrap10"> <div class="lz4gubgdy8b2sirz content-wrap"> <div id="dnn_ContentPane10" class="qa6oqbqs3brlemr6 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed11" class="kdskn46m1mmqsbjd DNNEmptyPane"></div> <div id="content-pane-wrap11"> <div class="fyotwe6qe138xa91 content-wrap"> <div id="dnn_ContentPane11" class="slg4gi1ek1bjsazu DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed12" class="bsa6ua6tmk28m072 DNNEmptyPane"></div> <div id="content-pane-wrap12"> <div class="yc9x8y0o9tglkvai content-wrap"> <div id="dnn_ContentPane12" class="cquxxm2jzprcshyo DNNEmptyPane"></div> </div> </div> </main> <div id="footer"> <div class="wufk0xm7sjijb3gb footer-inner content-wrap content-wrap-wide"> <div class="yme030qzpqspssiw dgov-grid"> <div class="cowfpjrlzvwh7vfq dgov-col-auto"> <div class="h7ewrijzofci2fm5 dgov-grid"> <div id="dnn_Footer_footerNavCol1" class="iwk7636e1scypd4v footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Defense.gov<i class="3wkmd5z6c13eotbv fas fa-chevron-down"></i></h3> <ul class="r3kfyo2jbnxdqn21 footer-nav"> <li class="rvv0a4ccfil0gvk4 "><a href="//sayaphlogin.com/app/IxEiKZDc-18/"><span class="81729ofmi0uczuse text text-link-18">Home</span></a></li> <li class="4av7haip25sph880 "><a href="//sayaphlogin.com/blogs/YhKwWAwI-94/"><span class="k58mzysh4hj1klx6 text text-link-20">News</span></a></li> <li class="0xv0axfcxtdpagse "><a href="//sayaphlogin.com/wap/WmQFdJJZ-94/"><span class="shz9jgl536g8nbyd text text-link-22">Spotlights</span></a></li> <li class="bwhrkwiae6qp1usq "><a href="//sayaphlogin.com/game/LarLJAmO-26/"><span class="43l0y4ph9agmyvbe text text-link-21">About</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol2" class="ts9ly010rytyw4bc footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Helpful Links<i class="sdansnnrtxpn9jzg fas fa-chevron-down"></i></h3> <ul class="w29sczje51snu9ze footer-nav"> <li class="3wot3lh49ogj2ect "><a href="//sayaphlogin.com/jogo/rrYItbIY-32/"><span class="tq0kttg15rqem3jk text text-link-23">Live Events</span></a></li> <li class="elsiva81t6rocn4w "><a href="//sayaphlogin.com/wap/baEaIgQg-52/"><span class="3sgz90fvban59mxg text text-link-24">Today in DOD</span></a></li> <li class="4ktjlh76gihsvz86 "><a href="//sayaphlogin.com/online/ixyfxMzN-43/"><span class="k01rjrqrk424d5p2 text text-link-25">Contracts</span></a></li> <li class="o9fygsfk7vymjrph "><a href="//sayaphlogin.com/br/NgZAGUum-48/"><span class="c3fzm7gw2n5co7zn text text-link-26">For the Media</span></a></li> <li class="hcz6c3i1tk5y4w1f "><a href="//sayaphlogin.com/app/RZurYFhI-37/"><span class="tx1y5k8djubthtbr text text-link-27">Contact</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol3" class="v75ue9ef6hh3vf7q footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Resources<i class="3r0h3jqjai3ls9r8 fas fa-chevron-down"></i></h3> <ul class="ke00btepr89e3145 footer-nav"> <li class="sgai4bo890s50qyx "><a href="//sayaphlogin.com/game/ooufWfKi-12/"><span class="nwmj9nhv5jf1476y text text-link-28">DOD Resources</span></a></li> <li class="n3pf67g1lhlwf36p "><a href="//sayaphlogin.com/game/KZDezkme-69/" target="_blank" rel="noopener noreferrer"><span class="dgbdq53oppfj0i9e text text-link-53">DOD Careers</span></a></li> <li class="3g8p0zfvtzseljmi "><a href="//sayaphlogin.com/blogs/LkLfdGyx-11/"><span class="kogezaiqnc2v8oey text text-link-29">Help Center</span></a></li> <li class="vq2n6yi95dw8jscf "><a href="//sayaphlogin.com/h5/pkBXkIno-42/"><span class="z5a91khz0zipbtyp text text-link-30">DOD / Military Websites</span></a></li> <li class="lqfpnbyd5l7j2fn9 "><a href="//sayaphlogin.com/h5/WgqdvDdo-79/" target="_blank" rel="noopener noreferrer"><span class="tdkrk1joab8ufks0 text text-link-49">Agency Financial Report</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol4" class="kfue1ahty64e5kaw footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Popular<i class="ir09q6bm4q30nwok fas fa-chevron-down"></i></h3> <ul class="cgn544fnp9bogyu2 footer-nav"> <li class="bqun7a0x5z9etl6i "><a href="//sayaphlogin.com/products/lIbvgOcV-54/"><span class="q4catlum4rmn9bhj text text-link-33">Value of Service</span></a></li> <li class="5n7dgjkoofgyuclt "><a href="//sayaphlogin.com/br/ekSQHRVs-42/"><span class="zn5l8ybc0gdccdj7 text text-link-36">Taking Care of Our People</span></a></li> <li class="r7owudo108jwf7ma "><a href="//sayaphlogin.com/store/BHkDrDcM-85/"><span class="na55236kt88gdfq4 text text-link-34">FY 2025 Defense Budget</span></a></li> <li class="4eaqic9y6nxw3hlz "><a href="//sayaphlogin.com/online/llZcNlsA-62/"><span class="8g6l08ql24o5v37n text text-link-54">National Defense Strategy</span></a></li> </ul> </div> </div> </div> <div class="969dzd9dmxfq70hy right-col dgov-col-md-12 dgov-col-lg-4"> <div class="nluu3l062wnlloou right-col-inner"> <div class="wiho4f0e58pzzdmg mission"> <img class="1zr7fh4whkmltecw 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="tg4hav5xg6y3o50o footer-search-wrap"> <label class="n3visunjs5zc3vku sr-only" for="footer-search-input">Enter Your Search Terms</label> <i class="rwwmf7lbq05fxc5x 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="3lbpwxi805t0u7x4 utility-nav"> <ul class="t3mpfdani5k2u7ih "> <li class="g7r68hxlq70ydu2w ">申请友情链接</li> </ul> </div> <div class="7iqwm7tlo73ke6rf social-nav-subscribe-container"> <div class="uo5d2odasrsw9c8u social-nav"> <ul class="5y2ealkk6pkegapj "> <li class="em414tz8geu53xnz "></li><a href="/sitemap.xml"><span class="7klyqxt0alognxf9 text text-link-47">Site Map</span></a></li> <li class="oqymkt9pntbgg2em "><a href="//sayaphlogin.com/blogs/NUytEXEI-58/" target="_blank" rel="noopener noreferrer" title="X" aria-label="X"><span class="0l3p01ywp7crn1j7 social-icon fa-brands fa-x-twitter social-link-5"></span></a></li> <li class="aynkrs44xtut7yva "><a href="//sayaphlogin.com/web/uYpbGrAH-75/" target="_blank" rel="noopener noreferrer" title="Facebook" aria-label="Facebook"><span class="k74v1mwnev8qxigk social-icon fa-brands fa-facebook-f social-link-6"></span></a></li> <li class="q8vfrcrquoi3pnth "><a href="//sayaphlogin.com/web/riHBFZqZ-91/" target="_blank" rel="noopener noreferrer" title="Instagram" aria-label="Instagram"><span class="9btumwqs4sx4rfxm social-icon fa fa-instagram social-link-8"></span></a></li> <li class="iq4w09l9ochds6f0 "><a href="//sayaphlogin.com/products/eICIjCch-80/" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn"><span class="vcm7bzf8mmgc57a1 social-icon fa-brands fa-linkedin-in social-link-51"></span></a></li> <li class="hb08m4lcnc3wr0rx "><a href="//sayaphlogin.com/store/DATvlXdD-60/" target="_blank" rel="noopener noreferrer" title="YouTube" aria-label="YouTube"><span class="2ik4pjurjjzbqwzz social-icon fa-brands fa-youtube social-link-7"></span></a></li> </ul> </div> <a class="yiio4okt2kqnj7e1 subscribe-btn btn btn-sm btn-primary" href="//sayaphlogin.com/win/UQTQecWy-70/" target="_blank">Subscribe</a> </div> </footer> <div id="footer-hosting"> <div class="7oo7dfpvnczkosmc skin-footer-banner"><a target="_blank" href="http://sayaphlogin.com/blogs/bYkVeNix-19"><span>teen patti hack file links</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>