<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- PAGE settings -->
  <link rel="icon" href="favicon.ico">
  <title>Bliss ROMs</title>
  <meta name="description" content="Open Source OS for all devices, based on AOSP">
  <meta name="keywords" content="blissroms, bliss, os, x86, aosp, android, rom, teambliss">
  <!-- CSS dependencies -->
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
    integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
  <script src="https://kit.fontawesome.com/7b4ed0a31a.js" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
    type="text/css">
  <link href="https://fonts.googleapis.com/css?family=VT323" rel="stylesheet" type="text/css">
  <link rel="stylesheet" href="neon.css">
  <!-- Script: Make my navbar transparent when the document is scrolled to top -->
  <script src="js/navbar-ontop.js"></script>
  <!-- Script: Animated entrance -->
  <script src="js/animate-in.js"></script>
  <link rel="stylesheet" href="css/animations.css">
  <link rel="stylesheet" href="css/style.css">
  <link rel="stylesheet" href="css/table.css">
  <script data-ad-client="ca-pub-7639560510014441" async=""
    src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</head>

<body class="">
  <!-- Navbar -->
  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="padding-right: 41px;">
    <div class="container pt-6">
      <a class="navbar-brand" href="#"><img src="images/BlissIcon_Smal_wl.png" width="50"
          class="d-inline-block align-top" alt=""></a>
      <div class="row">
        <div class="col-md-12"><a class="navbar-brand" href="#"><b><b>Bliss ROMs</b></b></a></div>
      </div>
      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
        data-target="#navbar2SupportedContent" aria-controls="navbar2SupportedContent" aria-expanded="true"
        aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
      <div class="navbar-collapse text-center justify-content-end collapse show" id="navbar2SupportedContent">
        <ul class="navbar-nav">
          <li class="nav-item mx-2">
            <a class="nav-link" href="#features"><b><b>Features</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="#about"><b><b>About</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="#team"><b><b>Team</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="https://blisslabs.org" target="_blank"><b><b>Non Profit</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="blog.html"><b><b>Blog</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="#gear"><b><b>Gear</b></b></a>
          </li>
        </ul>
        <a class="btn navbar-btn mx-2 btn-primary" href="#download"><b><b>Download</b></b></a>
      </div>
    </div>
  </nav>
  <!-- Cover -->
  <div class="section-fade-out pt-5 pb-5"
    style="background-image: url(&quot;https://i.imgur.com/BOGKaGy.jpg&quot;); background-position: center bottom;">
    <div class="container pt-5">
      <div class="row">
        <div class="col-md-5">
          <div class="col-md-12">
            <h1 class="display-3 mb-4">Bliss ROMs</h1>
            <p class="lead">Working together to bring you an Open Source OS, based on Android, that incorporates many
              customizations, options and added security features.&nbsp;<br><br>And it is available for...</p>
            <div class="d-inline-flex justify-content-center align-items-center mx-auto">
              <a href="#download"
                class="btn btn-lg btn-primary d-inline-flex justify-content-center align-items-center mx-auto">Download
                Now</a>
            </div>
          </div>
        </div>
        <div class="d-flex justify-content-center align-items-center flex-grow-1" align="center"
          style="max-height: 100%;max-width: 100%;vertical-align: middle;display: inline-flex;float: none; margin-top: -8%;">
          <div class="d-inline-flex justify-content-center align-items-center">
            <div class="animation d-inline-flex justify-content-center align-items-center" data-animation-step="2">
              <div class="device mt-5">
                <div class="screen-stand"></div>
                <div class="display">
                  <div class="slide1">
                    <div>Most Intel/x86 <br>
                      <em>PCs, Tablets &amp; Laptops</em>
                    </div>
                  </div>
                  <div class="slide2">
                    <div>Most Android <br>
                      <em>tablets</em>
                    </div>
                  </div>
                  <div class="slide3">
                    <div>Most<br>Android<br>
                      <em>phones</em>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <!-- Article style section -->
  <div class="section-fade-in py-5 bg-dark">
    <div class="container">
      <div class="row" id="about">
        <div
          class="col-md-6 order-2 order-md-1 animate-in-left d-flex flex-grow-1 align-items-center justify-content-center">
          <img class="img-fluid d-block mx-auto" src="images/1571976237838.png" style="" width="50%">
        </div>
        <div class="col-md-6 align-self-center order-1 order-md-2 my-3 text-md-left text-center">
          <h3 class="display-3">About Bliss</h3>
          <p class="my-4 body-font">We are a volunteer based non-profit organization that works to maintain various open
            source &amp; closed source development projects. We provide the inspiration, training and mentorship to help
            the&nbsp;dreams of those that join, become reality.<br><br>One of our main focuses is to provide a quality
            ROM/OS that can run on all your devices, preserving customizations and options by syncing across all
            platforms. We try to include all the features you can imagine, for just about any situation.<br><br>You will
            also find us regularly contributing to other projects as well because we believe that building our community
            through positive influence will go further than building an empire on selfish goals.</p>
          <a class="btn btn-outline-primary" href="bfor.html">Learn More About Us</a>
        </div>
      </div>
    </div>
  </div>
  <!-- Features -->
  <div class="text-center bg-primary py-5 px-5">
    <div class="container">
      <div class="d-flex justify-content-center align-items-center px-0 container-fluid mx-auto">
        <div class="row mx-auto d-flex align-items-center justify-content-center">
          <div class="col-md-12">
            <div class="row mx-auto">
              <div class="align-self-center col-lg-6 text-md-left text-center">
                <h3 class="display-3">Bliss Variants</h3>
                <p class="my-4 body-font">Bliss comes in a few variants. On top of our traditional device builds of
                  Bliss ROM, our GSI/Treble builds will work on most treble compatible devices (Android Pie+) And our
                  x86 variant (Bliss OS) is made to work with the Linux kernel, and supports booting with MBR/UEFI type
                  bootloaders. So just about any Windows/Linux PC or tablet released in the last 4 years. We are always
                  developing with usability in mind, and supporting more and more devices each week.&nbsp;<br></p>
                <a class="btn btn-dark" href="#download">Download</a>
              </div>
              <div class="align-self-center mt-5 col-lg-5 offset-1 animate-in-right">
                <img class="img-fluid d-block" src="images/bliss_surface.png">
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="py-5 bg-dark" id="features">
    <div class="container">
      <div class="row">
        <div class="col-12 text-center">
          <h3 class="display-3">Features</h3>
        </div>
      </div>
      <div class="row">
        <div class="align-self-center text-md-right text-center col-lg-4 col-md-6">
          <h4 class="text-primary"><b>Focus on design</b></h4>
          <p class="mb-5 text-white">We include many options for customization and theming throughout the OS</p>
          <h4 class="text-primary"><b>Customized settings</b></h4>
          <p class="mb-5 text-white">Choose settings depending on the criteria you value the most. With no limits.</p>
          <h4 class="text-primary"><b>Performance</b></h4>
          <p class="mb-5 text-white">Focused on speed and stability with tweaks to assist in the most demanding
            applications</p>
        </div>
        <div class="my-3 d-none d-lg-block animate-in-down col-md-4">
          <img class="img-fluid d-block" src="images/Phone_features_dark.png">
        </div>
        <div class="align-self-center text-md-left text-center col-lg-4 col-md-6">
          <h4 class="text-primary"><b>Battery-friendly</b></h4>
          <p class="mb-5 text-white">Extra options are provided to help tune battery consumption to the best levels</p>
          <h4 class="text-primary"><b>Added Security</b></h4>
          <p class="mb-5 text-white">Additional security options and features are found throughout the OS. And AOSP
            security updates are merged regularly.</p>
          <h4 class="text-primary"><b>Compatibility</b></h4>
          <p class="mb-5 text-white">We bring Bliss to every device we own. And our PC builds include extras for
            ARM/ARM64 app compatibility&nbsp;&nbsp;</p>
        </div>
      </div>
    </div>
  </div>
  <!-- Features -->
  <!-- Carousel reviews -->
  <div class="section bg-dark">
    <div class="container d-flex justify-content-center align-items-center flex-grow-1 mx-auto w-75 py-4">
      <div class="row">
        <div class="col-md-6 text-left mx-auto flex-center">
          <div>
            <h2 class="my-3 highlight_secondary team-header text-white no-wrap">We volunteer our time.</h2>
            <p class="mb-3 body-font">We are a 501(c3) nonprofit, run by people that donate their free time towards the
              project. We do our best to bring a quality OS to your device, while working a real job on the side in most
              cases. Please consider showing us we're on the right track by clicking the button below and making a small
              contribution towards our efforts.</p> <a
              href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24" target="_blank"
              class="btn btn-primary">Buy Us a Coffee</a>
          </div>
        </div>
        <div class="col-md-5 py-5 offset-1"><img
            class="img-fluid d-block d-flex align-items-center justify-content-center flex-grow-1 mx-auto animate-in-right"
            src="images/coffee-break.svg" width="300"></div>
      </div>
    </div>
  </div>
  <!-- Download section -->
  <div class="py-5 bg-light text-right" id="documentation">
    <div class="container">
      <div class="row">
        <div class="col-md-12" style="">
          <h3 class="display-3 text-truncate">Docs &amp; Issue Reporting</h3>
          <div class="row">
            <div class="col-md-12" style="">
              <h3>Looking for our documentation?</h3>
              <p>We have full guides, troubleshooting tips, and more.&nbsp;</p>
              <div class="col-md-12">
                <a class="btn btn-secondary text-right mb-3 mx-2" href="https://wiki.blissroms.com" target="_blank">Team
                  Bliss Wiki</a>
                <a class="btn btn-secondary mb-3 mx-2" href="https://blog.blissroms.com" target="_blank">Development
                  blog</a>
              </div>
              <h3>Like to report a bug?</h3>
              <p>We prefer to keep all our bug reports in a centralized place. Please use the link below to report any
                bugs using the Issues tab for the repo needed.</p>
              <div class="mx-auto col-md-12">
                <a class="btn btn-secondary mb-3 mx-2" href="https://github.com/BlissRoms"
                  target="_blank">BlissRoms&nbsp;</a><a class="btn btn-secondary mb-3 mx-2"
                  href="https://github.com/BlissRoms-Devices" target="_blank">BlissRoms Devices</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="download-section bg-light mb-0" id="download">
    <!-- End Downloads -->
    <div class="py-5 bg-dark" id="documentation">
      <div class="container">
        <div class="row">
          <div class="col-md-12" style="">
            <h3 class="display-3 text-truncate">Developers</h3>
            <div class="row">
              <div class="col-md-3" style=""><img class="img-fluid d-block" src="images/github-logo.png"></div>
              <div class="col-md-7" style="">
                <h3>Want to help contribute towards our open source projects?</h3>
                <p>Documentation for BlissRoms and Bliss OS can be found on our wiki, while our development update posts
                  can be found under our blog. Please read the documentation before asking a question on our Telegram
                  development chats!<br><br>To get a glimpse on usage statistics of Bliss, please visit our statistics
                  page.</p>
                <p>If you want to contribute code, download the source from our GitHub organization and submit commits
                  through our Gerrit review system!</p>
              </div>
              <div class="col-md-2 mx-auto" style="">
                <a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms" target="_blank">BlissRoms
                  GitHub</a><a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms-Devices"
                  target="_blank">BlissRoms Devices GitHub</a>
                <a class="btn mb-3 btn-secondary" href="https://review.blissroms.com" target="_blank">BlissRoms
                  Gerrit</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="container py-5">
      <div class="row">
        <div class="col-md-6 order-2 order-md-1"> <img class="img-fluid d-block mx-auto" src="images/1571976296909.png"
            style="" width="50%"> </div>
        <div class="px-md-5 col-md-6 d-flex flex-column align-items-start justify-content-center order-1 order-md-2">
          <h3 class="display-3">Downloads</h3>
          <img
            src="https://img.shields.io/sourceforge/dm/blissroms.svg?style=for-the-badge&amp;logo=appveyor&amp;colorB=blue"
            max-width="160px" width="50%">
          <p class="mb-3">
          </p>
          <div id="demo">
            <span>
              <div class="container-fluid text-center bg-warning py-2">
                <div class="row">
                  <div class="mx-auto col-md-12">
                    <h1 class="mt-2"><b>Coming Soon</b></h1>
                    <p>Our Android 11 builds are coming very soon; stay tuned to our blog for more updates!</p>
                  </div>
                </div>
              </div>
            </span>
            <h3>Please consider donating to support our project. Thanks!</h3>
            <br>
            <a class="btn btn-primary mx-1 mb-3" href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24"
              target="_blank">Donate</a>
            <a class="btn mb-3 btn-link disabled" href="https://downloads.blissroms.com">Go To Downloads</a>
            <hr width="100%" size="8" align="left">
            <p class="lead text-dark">
              <label></label>
            </p>
            <h2>Looking for our PC builds?</h2>
            <p>(Bliss OS (x86) &amp; Android-Generic builds)</p>
            <br><br>
            <a class="btn mb-3 btn-dark" target="BLANK" href="https://blissos.org">Go to the Bliss OS website</a>
            <a class="btn mb-3 btn-dark" target="BLANK" href="https://android-generic.github.io">Go to the
              Android-Generic website</a>
            <p></p>
            <hr width="100%" size="8" align="left">
            <p class="lead text-dark">
              <label></label>
            </p>
            <h2>Legacy Downloads</h2>
            <br>
            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Q/">Android 10 (Q) device
              builds</a><br>
            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Pie/">Android 9 (Pie) device
              builds</a><br>
            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/GSI/">Android 9 (Pie) GSI
              builds</a>
            <p></p>
          </div>
        </div>
      </div>
    </div>
    <div class="py-5 bg-light" id="team">
      <div class="container">
        <div class="row">
          <div class="col-md-12">
            <div class="row">
              <div class="mx-auto col-md-12 text-center">
                <h3 class="display-3">The Team</h3>
              </div>
            </div>
            <ul class="nav nav-tabs nav-justified">
              <li class="nav-item mx-auto font-weight-bold"> <a class="active nav-link" href="" data-toggle="tab"
                  data-target="#tabone">Core Members</a> </li>
              <li class="nav-item mx-auto font-weight-bold"> <a href="" class="nav-link" data-toggle="tab"
                  data-target="#tabtwo">Maintainers</a> </li>
            </ul>
            <div class="tab-content mt-2">
              <div class="tab-pane fade show active" id="tabone" role="tabpanel">
                <section id="content" class="team_content"></section>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
                <script>
                  $.ajax({
                    type: "GET",
                    url: "https://api.blissroms.org/api/teambliss", // TeamBliss JSON
                    success: function (data) {
                      var newContent = ''; // Variable to hold HTML
                      for (var i = 0; i < data.length; i++) { // Loop through object
                        newContent += '<div id="event" class="team_item">';
                        newContent += '<img class="image crop" src="' + data[i].avatar + '" ';
                        newContent += 'alt="' + data[i].member + '" />';
                        newContent += '<h3><b>' + data[i].member + '</b></h3>';
                        newContent += '<p class="team_data_text font-weight-bold">' + data[i].designation + '</p>';
                        // newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].email + '&quot;</i></p>';
                        newContent += '</div>';
                      }
                      // Update the page with the new content
                      document.getElementById('content').innerHTML = newContent;
                    }
                  })
                </script>
              </div>
              <div class="tab-pane fade" id="tabtwo" role="tabpanel">
                <section id="content2" class="team_content"></section>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
                <script>
                  $.ajax({
                    type: "GET",
                    url: "https://blissapi.blissroms.com/blissinfra/public/allmaintainers", // TeamBliss JSON
                    success: function (data) {
                      var newContent = ''; // Variable to hold HTML
                      for (var i = 0; i < data.length; i++) { // Loop through object
                        newContent += '<div id="event" class="team_item">';
                        newContent += '<img class="image crop" src="' + data[i].image + '" ';
                        newContent += 'alt="' + data[i].mname + '" />';
                        newContent += '<h3><b>' + data[i].mname + '</b></h3>';
                        newContent += '<p class="team_data_text font-weight-bold">' + data[i].device + '</p>';
                        newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].codename + '&quot;</i></p>';
                        newContent += '</div>';
                      }
                      // Update the page with the new content
                      document.getElementById('content2').innerHTML = newContent;
                    }
                  })
                </script>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="py-5 bg-primary" id="gear">
      <div class="container">
        <div class="row">
          <div class="col-md-12">
            <h1><b>A Little Bliss Gear</b></h1>
            <p class="lead mb-4"><b>Bliss Family of ROMs has put together a Teespring store as a start to bring some
                stylish merchandise to our users, and help raise money for our cause. Check out a few of our selections
                below and follow the link to our store for more</b></p>
          </div>
        </div>
        <div class="row d-flex justify-content-between">
          <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" width="1500" src="images/560.jpg">
            <h4 class="my-3"> <b>T-Shirts</b></h4>
            <p class="body-font"><b>Be the first one on your block to sport Bliss on your back. Various sizes and colors
                available.</b></p>
          </div>
          <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" src="images/560 (1).jpg" width="1500">
            <h4 class="my-3"> <b>Hoodies</b></h4>
            <p class="body-font"><b>Keep warm in style. Wr have hoodies and sweatshirts available. Various sizes and
                colors options too.</b></p>
          </div>
          <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" src="images/560 (2).jpg" width="1500">
            <h4 class="my-3"> <b>Tank Tops</b></h4>
            <p class="body-font"><b>It's all about the Bliss when you are wearing one of our tank tops. Various sizes
                and colors available.</b></p>
          </div>
        </div>
        <div class="row">
          <div class="col-md-12">
            <div class="card">
              <div class="card-body">
                <h4 class="card-title"><b>Want More?</b></h4>
                <p class="card-text body-font">We are constantly updating our selection of apparel, adding more cool
                  designs and options as we go. So make sure you check back for any updates.&nbsp;</p> <a
                  class="btn btn-primary" href="https://teespring.com/stores/bliss-family-store-2">Visit Our Teespring
                  Store&nbsp;<i class="fa fa-shopping-cart fa-fw"></i></a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <!-- START OF BLISSLABS -->
    <div class="py-5 text-light cover" style="background-color: #343a40;">
      <div class="container" style="max-width: 100%;">
        <div class="row">
          <div class="col-md-12">
            <div class="row">
              <div
                class="d-flex flex-column justify-content-center p-3 col-md-8 offset-lg-1 align-items-start order-1 order-md-1">
                <h1 class="mb-3">A BlissLabs Project</h1>
                <p class="lead">We are part of a larger community of open-source projects called BlissLabs. Explore more
                  about the other BlissLabs projects below:<br></p>
                <a class="btn btn-primary" target="_blank" href="https://blisslabs.org">Learn More</a>
              </div>
              <div class="col-md-4 col-lg-3 order-2 order-md-2 p-0"> <img
                  class="img-fluid d-block justify-content-between align-items-center"
                  src="https://blisslabs.org/assets/images/bliss_labs_logo.svg" style="width: 20vw;"> </div>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-md-12">
            <div class="carousel slide" data-ride="carousel" id="carousel">
              <div class="carousel-inner">
                <div id="carousel-slider"> </div>
              </div>
              <a class="carousel-control-prev" href="#carousel" role="button" data-slide="prev">
                <span class="carousel-control-prev-icon"></span>
                <span class="sr-only">Previous</span>
              </a>
              <a class="carousel-control-next" href="#carousel" role="button" data-slide="next">
                <span class="carousel-control-next-icon"></span>
                <span class="sr-only">Next</span>
              </a>
            </div>
            <!---------------->
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
            <script>
              $.ajax({
                type: "GET",
                url: "https://api.blissroms.org/api/allprojects",
                contentType: "application/json",
                datatype: "json",
                data: {},
                success: function (data) {
                  var newContent = ''; // Variable to hold HTML
                  for (var i = 0; i < data.length; i++) { // Loop through object
                    if (data[i].project != null) {
                      if (i == 0) {
                        newContent += '<div class="carousel-item active" style="padding-block: 10vh;" >';
                      } else {
                        newContent += '<div class="carousel-item" >';
                      }
                      newContent += '<img class="d-block img-fluid" src="' + data[i].project_avatar + '" style="margin-left: 10%; height: 35vh;"';
                      newContent += 'alt="' + data[i].project + ' " style="padding-top: 1.5rem;"/>';
                      newContent += '<div class="carousel-caption" style="background: linear-gradient(#343a40 10%, #343a40 100%)!important; padding-top: 50vw; width: 50vw; margin-left: 30vw; bottom: 0px ">';
                    < !--newContent += '<div class="item-details">'; -->
                        newContent += '<h3 class="zxc" ><b style="font-size: xx-large;">' + data[i].project + '</b></h3>';
                      newContent += '<h5 class="zxc" >Project Lead: ' + data[i].project_lead + '</h5>';
                      newContent += '<p class="card__text zxc" style=" margin-right: 1.7rem; margin-left: 1.7rem; ">' + data[i].project_description + '</p>';
                      if (data[i].project_github != null) {
                        newContent += '<a href="' + data[i].project_github + '" target="_blank"><i class="fab fa fa-git p-2" style="font-size: 300%;"></i></a>';
                      }
                      if (data[i].project_website != null) {
                        newContent += '<a href="' + data[i].project_website + '" target="_blank"><i class="fab fa p-2 fa-globe" style="font-size: 300%;"></i></a>';
                      }
                    < !--newContent += '</div>'; -->
                        newContent += '</div>';
                      newContent += '</div>';
                    } else {
                      newContent = 'NONE';
                    }
                  }
                  // Update the page with the new content
                  document.getElementById('carousel-slider').innerHTML = newContent;
                },
                error: function (jqXHR, status, err) {
                  newContent = 'ERROR: NONE';
                  document.getElementById('carousel-slider').innerHTML = newContent;
                  alert("Status: " + textStatus);
                  alert("Error: " + errorThrown);
                }
              })
            </script>
            <!---------------->
          </div>
        </div>
      </div>
    </div>
    <!-- END OF BLISSLABS -->
    <div class="py-3 bg-dark">
      <div class="container">
        <div class="row">
          <div class="col-lg-3 col-6 p-3">
            <h5> <b>Socials</b></h5>
            <ul class="list-unstyled text-primary">
              <li class="text-primary"> <a href="https://t.me/Team_Bliss_Community">BlissROMs Telegram</a> </li>
              <li> <a href="https://t.me/blissx86">Bliss OS Telegram</a> </li>
              <li> <a href="https://www.facebook.com/BlissFamilyOfROMs/">Bliss Facebook</a> </li>
              <li> <a href="https://twitter.com/Bliss_Roms">Bliss Twitter</a> </li>
              <li> <a href="https://www.linkedin.com/company/stayblissful">Bliss LinkedIn</a> </li>
              <li> <a href="https://discord.gg/wwc4Aua4fp">Bliss Discord</a> </li>
            </ul>
          </div>
          <div class="col-lg-3 col-6 p-3">
            <h5> <b>Sources</b></h5>
            <ul class="list-unstyled">
              <li> <a href="https://review.blissroms.com">BlissROMs Gerrit Review</a> </li>
              <li> <a href="https://review-x86.blissroms.com">Bliss OS (x86) Gerrit Review</a> </li>
              <li> <a href="https://github.com/BlissRoms">BlissROMs GitHub</a> </li>
              <li> <a href="https://github.com/BlissRoms-Devices">BlissROMs-Devices GitHub</a> </li>
              <li> <a href="https://github.com/BlissRoms-x86">Bliss OS GitHub</a> </li>
              <li> <a href="https://github.com/BlissRoms-pine64">BlissROMs-PINE64 GitHub</a> </li>
            </ul>
          </div>
          <div class="col-lg-3 col-6 p-3">
            <h5>Subreddits</h5>
            <ul class="list-unstyled">
              <li> <a href="https://www.reddit.com/r/BlissRoms">BlissROMs</a> </li>
              <li> <a href="https://www.reddit.com/r/BlissOS">Bliss OS</a> </li>
              <li> <a href="https://www.reddit.com/r/TeamBliss">TeamBliss</a> </li>
            </ul>
          </div>
          <div class="col-lg-3 col-md-3 p-3">
            <h5> <b>Follow us</b> </h5>
            <div class="row">
              <div class="col-md-12 d-flex align-items-center my-2 justify-content-center"> <a
                  href="https://www.facebook.com/BlissFamilyOfROMs/" class="">
                  <i class="d-block fa fa-facebook-official text-muted mr-2 fa-2x"></i>
                </a> <a href="https://www.instagram.com/blissroms/">
                  <i class="d-block fa fa-instagram text-muted mx-2 fa-2x"></i>
                </a><a href="https://github.com/BlissRoms">
                  <i class="d-block fa fa-github text-muted text-muted mx-2 fa-2x"></i>
                </a><a href="https://www.linkedin.com/company/stayblissful">
                  <i class="d-block fa fa-linkedin text-muted text-muted mx-2 fa-2x"></i>
                </a> <a href="https://www.reddit.com/r/BlissRoms">
                  <i class="d-block fa fa-reddit text-muted mx-2 fa-2x"></i>
                </a> <a href="https://twitter.com/Bliss_Roms">
                  <i class="d-block fa fa-twitter text-muted ml-2 fa-2x"></i>
                </a> </div>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-md-12 text-center">
            <p class="mb-0 mt-2">© 2021 BlissLabs. All rights reserved</p>
          </div>
        </div>
      </div>
    </div>
    <!-- Footer -->
    <!-- JavaScript dependencies -->
    <script src="js/mainani.js" type="text/javascript"></script>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
      integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
      crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
      integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
      crossorigin="anonymous"></script>
    <!-- Script: Smooth scrolling between anchors in the same page -->
    <script src="js/smooth-scroll.js"></script>
    <script src="js/conditionize.js"></script>
  </div>
</body>

</html>