<!--
 Copyright 2020 Google LLC

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manifest>
  <remote  name="cos"
           fetch="https://cos.googlesource.com"
           review="https://cos-review.googlesource.com"  />
  <default remote="cos" revision="refs/heads/master" sync-j="8" />
  <notice>
Your sources have been sync'd successfully.
  </notice>

  <!-- Overlays -->
  <project path="src/overlays"
           name="cros/chromiumos/overlays/board-overlays" />

  <!-- Kernels -->
  <project path="src/third_party/kernel"
           name="third_party/kernel"
           revision="refs/heads/lakitu-4.19" />

  <!-- cros_sdk dependencies -->
  <project path="src/third_party/portage-stable"
           name="cros/chromiumos/overlays/portage-stable" />
  <project path="chromite"
           name="cros/chromiumos/chromite" />
  <project path="chromite/infra/proto"
           name="cros/chromiumos/infra/proto" />
  <project path="src/platform/crostestutils"
           name="cros/chromiumos/platform/crostestutils" />
  <project path="src/scripts"
           name="cros/chromiumos/platform/crosutils" />
  <project path="src/platform/vboot_reference"
           name="cros/chromiumos/platform/vboot_reference" />
  <project path="src/third_party/autotest/files"
           name="cros/chromiumos/third_party/autotest" />
  <project path="src/third_party/chromiumos-overlay"
           sync-c="true"
           name="cros/chromiumos/overlays/chromiumos-overlay" />
  <project path="src/third_party/eclass-overlay"
           name="cros/chromiumos/overlays/eclass-overlay" />
  <project path="src/platform/dev"
           name="cros/chromiumos/platform/dev-util" />
  <project path="src/platform/verity"
           name="cros/chromiumos/platform/dm-verity" />
  <project path="src/third_party/toolchain-utils"
           name="cros/chromiumos/third_party/toolchain-utils" />
  <project path="src/third_party/portage_tool"
           name="cros/chromiumos/third_party/portage_tool" />
  <project path="src/chromium/depot_tools"
           name="cros/chromium/tools/depot_tools" />
  <project path="src/third_party/coreboot"
           name="cros/chromiumos/third_party/coreboot" />
  <project path="src/third_party/modp_b64"
           name="cros/aosp/platform/external/modp_b64" />
  <project path="src/platform2"
           name="cros/chromiumos/platform2" />

  <!-- Repo hooks -->
  <project path="src/repohooks"
           name="cros/chromiumos/repohooks" />
  <repo-hooks enabled-list="pre-upload" in-project="chromiumos/repohooks" />

  <!-- Manifests -->
  <project path="manifest" name="manifest" >
      <copyfile src="LICENSE" dest="LICENSE" />
  </project>

</manifest>
