Showing preview only (2,051K chars total). Download the full file or copy to clipboard to get everything.
Repository: TibixDev/winboat
Branch: main
Commit: 74a7fddaf95d
Files: 102
Total size: 1.9 MB
Directory structure:
gitextract_lejw5r95/
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── 1-bug-report.yml
│ │ ├── 2-feature-request.yml
│ │ └── config.yml
│ ├── renovate.json5
│ └── workflows/
│ └── release.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── build-guest-server.sh
├── data/
│ └── usb.ids
├── electron-builder.json
├── guest_server/
│ ├── RDPApps.reg
│ ├── argon2.go
│ ├── go.mod
│ ├── go.sum
│ ├── install.bat
│ ├── main.go
│ ├── nssm.sha1.txt
│ ├── scripts/
│ │ ├── apps.ps1
│ │ ├── get-icon.ps1
│ │ ├── time-sync.bat
│ │ └── update.ps1
│ ├── securekey.go
│ └── util.go
├── package.json
├── postcss.config.ts
├── scripts/
│ ├── build.ts
│ ├── dev-server.ts
│ └── private/
│ └── tsc.ts
├── src/
│ ├── main/
│ │ ├── main.ts
│ │ ├── static/
│ │ │ └── .gitkeep
│ │ └── tsconfig.json
│ ├── renderer/
│ │ ├── App.vue
│ │ ├── assets/
│ │ │ └── LICENSE.txt
│ │ ├── components/
│ │ │ ├── ConfigCard.vue
│ │ │ ├── WBContextMenu.vue
│ │ │ └── WBMenuItem.vue
│ │ ├── data/
│ │ │ ├── appicons.ts
│ │ │ ├── docker.ts
│ │ │ ├── internalapps.ts
│ │ │ └── podman.ts
│ │ ├── directives/
│ │ │ └── autoscroll.ts
│ │ ├── index.css
│ │ ├── index.html
│ │ ├── lib/
│ │ │ ├── config.ts
│ │ │ ├── constants.ts
│ │ │ ├── containers/
│ │ │ │ ├── common.ts
│ │ │ │ ├── container.ts
│ │ │ │ ├── docker.ts
│ │ │ │ └── podman.ts
│ │ │ ├── exec-helper.ts
│ │ │ ├── install.ts
│ │ │ ├── migrate.ts
│ │ │ ├── qmp.ts
│ │ │ ├── specs.ts
│ │ │ ├── usbmanager.ts
│ │ │ └── winboat.ts
│ │ ├── main.ts
│ │ ├── public/
│ │ │ └── xel/
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE.md
│ │ │ ├── README.md
│ │ │ ├── package.json
│ │ │ ├── themes/
│ │ │ │ ├── adwaita-dark.css
│ │ │ │ ├── adwaita.css
│ │ │ │ ├── base.css
│ │ │ │ ├── cupertino-dark.css
│ │ │ │ ├── cupertino.css
│ │ │ │ ├── fluent-dark.css
│ │ │ │ ├── fluent.css
│ │ │ │ ├── material-dark.css
│ │ │ │ └── material.css
│ │ │ └── xel.js
│ │ ├── router.ts
│ │ ├── tsconfig.json
│ │ ├── utils/
│ │ │ ├── bus.ts
│ │ │ ├── capitalize.ts
│ │ │ ├── debounce.ts
│ │ │ ├── getFreeRDP.ts
│ │ │ ├── icons.ts
│ │ │ ├── interval.ts
│ │ │ ├── log.ts
│ │ │ ├── openLink.ts
│ │ │ └── port.ts
│ │ ├── views/
│ │ │ ├── About.vue
│ │ │ ├── Apps.vue
│ │ │ ├── Blank.vue
│ │ │ ├── Config.vue
│ │ │ ├── Home.vue
│ │ │ ├── Migration.vue
│ │ │ └── SetupUI.vue
│ │ ├── vite-env.d.ts
│ │ └── window.d.ts
│ └── types.ts
├── tailwind.config.ts
└── vite.config.ts
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: winboat
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
================================================
FILE: .github/ISSUE_TEMPLATE/1-bug-report.yml
================================================
name: 🚨 Bug Report
description: Report an issue that you've encountered
title: "[Bug] "
labels:
- bug
- needs-triage
body:
- type: markdown
attributes:
value: |
Thanks for taking your time reporting an issue.
Please make sure to look through the [issue tracker](https://github.com/TibixDev/winboat/issues) before submitting an issue as to avoid duplicates.
- type: input
attributes:
label: What version of WinBoat are you running?
validations:
required: true
- type: textarea
attributes:
label: Your Environment
placeholder: |
Linux Distro used:
Desktop Environment used:
FreeRDP type and version used: (e.g. flatpak 3.17.1)
Anything else you may find relevant...
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce / Context
description: |
Please provide clear steps to reproduce this issue.
If the issue is not completely reproducible, please provide some context about your case.
validations:
required: true
- type: textarea
attributes:
label: Logs
description: |
Please drag 'n drop your `.log` files from `~/.winboat`, then format them accordingly.
WARNING: winboat.log contains your VM's password in plaintext, so if it's sensitive make sure to remove it before uploading."
placeholder: |
- [winboat.log](https://github.com/user-attachments/files/.../winboat.log)
- [install.log](https://github.com/user-attachments/files/.../install.log)
- [qmp.log](https://github.com/user-attachments/files/.../qmp.log)
...
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Describe what should happen in this case.
validations:
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the Expected Behavior
validations:
required: true
- type: textarea
attributes:
label: Possible Solution
description: Optionally, suggest a fix/reason for the issue.
- type: checkboxes
attributes:
label: Quality Notice
options:
- label: I have checked the issue tracker and verified that this bug is a unique case.
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/2-feature-request.yml
================================================
name: 🧩 Feature Request
description: Suggest a new feature, enhancement, or just share your idea
title: "[Feature] "
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
Thank you for taking your time submitting a Feature Request
Please make sure to look through the [issue tracker](https://github.com/TibixDev/winboat/issues) before submitting a Feature Request as to avoid duplicates.
- type: textarea
attributes:
label: Feature Description
description: Please take your time in outlining your Feature Request, as it helps others understand it more clearly.
validations:
required: true
- type: textarea
attributes:
label: Use-Case
description: Why do you think this Feature would be useful?
validations:
required: true
- type: textarea
attributes:
label: Proposed Implementation
description: Optionally, you could provide us with a proposal as to how you'd implement this feature.
- type: checkboxes
attributes:
label: Notice
options:
- label: I have checked the issue tracker and verified that this Feature Request has not been proposed before.
required: true
- label: I would like to help out implementing this feature
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: Ask for Help
about: If you have any questions regarding WinBoat, join our Discord
url: https://discord.gg/MEwmpWm4tN
================================================
FILE: .github/renovate.json5
================================================
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
extends: ["config:recommended", ":disableRateLimiting"],
includePaths: ["**/src/renderer/lib/**"],
regexManagers: [
{
fileMatch: ["src/renderer/lib/install\\.ts$"],
matchStrings: ['"image":\\s*"(?<depName>ghcr\\.io/dockur/windows):(?<currentValue>[^"]+)"'],
datasourceTemplate: "docker",
depTypeTemplate: "container",
},
],
}
================================================
FILE: .github/workflows/release.yml
================================================
name: Build WinBoat
permissions:
contents: write
on:
push:
branches:
- main
tags:
- "v*"
workflow_dispatch:
inputs:
build_type:
description: "Build type"
required: true
default: "all"
type: choice
options:
- all
- linux-only
- guest-server-only
jobs:
build:
runs-on: ubuntu-22.04
if: >-
(github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) ||
(github.event_name == 'workflow_dispatch' && github.event.inputs.build_type != 'guest-server-only')
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Update USB IDs database
run: |
echo "Removing old usb.ids file..."
rm -f data/usb.ids
echo "Downloading latest usb.ids from linux-usb.org..."
curl -o data/usb.ids http://www.linux-usb.org/usb.ids
echo "USB IDs database updated successfully"
- name: Show build type
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "Manual workflow triggered with build type: ${{ github.event.inputs.build_type }}"
else
echo "Automatic workflow triggered by ${{ github.event_name }}"
fi
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev libusb-1.0-0-dev
- name: Set up Bun
uses: oven-sh/setup-bun@v2
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "stable"
cache-dependency-path: "guest_server/go.sum"
- name: Install dependencies
run: bun ci
- name: Build guest server and app
run: bun run build:linux-gs
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ELECTRON_BUILDER_COMPRESSION_LEVEL: 5
- name: Derive artifact naming
id: meta
shell: bash
run: |
bun -e "const p=require('./package.json'); console.log('NAME='+p.name)" >> "$GITHUB_OUTPUT"
bun -e "const p=require('./package.json'); console.log('VERSION='+p.version)" >> "$GITHUB_OUTPUT"
ARCH_FROM_FILE=$(ls dist/*.{AppImage,deb,rpm,tar.bz2} 2>/dev/null | head -n1 | xargs -I{} basename {} | sed -E 's/.*-([A-Za-z0-9_]+)\.[^.]+$/\1/')
if [ -n "$ARCH_FROM_FILE" ]; then
echo "ARCH=$ARCH_FROM_FILE" >> "$GITHUB_OUTPUT"
else
BUN_ARCH=$(bun -p "process.arch")
case "$BUN_ARCH" in
x64) echo "ARCH=x86_64" >> "$GITHUB_OUTPUT" ;;
arm64) echo "ARCH=arm64" >> "$GITHUB_OUTPUT" ;;
arm) echo "ARCH=armv7l" >> "$GITHUB_OUTPUT" ;;
*) echo "ARCH=$BUN_ARCH" >> "$GITHUB_OUTPUT" ;;
esac
fi
- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.appimage
path: dist/*.AppImage
if-no-files-found: ignore
- name: Upload DEB
uses: actions/upload-artifact@v4
with:
name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.deb
path: dist/*.deb
if-no-files-found: ignore
- name: Upload RPM
uses: actions/upload-artifact@v4
with:
name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.rpm
path: dist/*.rpm
if-no-files-found: ignore
- name: Upload TAR.BZ2
uses: actions/upload-artifact@v4
with:
name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.tar.bz2
path: dist/*.tar.bz2
if-no-files-found: ignore
- name: Upload unpacked directory
uses: actions/upload-artifact@v4
with:
name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}-unpacked.zip
path: dist/linux-unpacked/**
if-no-files-found: ignore
- name: Upload guest server zip
uses: actions/upload-artifact@v4
with:
name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}-guest_server.zip
path: dist/linux-unpacked/resources/guest_server/winboat_guest_server.zip
if-no-files-found: ignore
# - name: Upload metadata
# uses: actions/upload-artifact@v4
# with:
# name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}-metadata
# path: |
# dist/latest-linux.yml
# dist/linux-unpacked/resources/guest_server/winboat_guest_server.zip
# if-no-files-found: ignore
guest-server-only:
runs-on: ubuntu-22.04
if: github.event_name == 'workflow_dispatch' && github.event.inputs.build_type == 'guest-server-only'
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Show build type
run: |
echo "Manual workflow triggered with build type: guest-server-only"
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "stable"
cache-dependency-path: "guest_server/go.sum"
- name: Build guest server only
run: bash build-guest-server.sh
- name: Upload guest server artifacts
uses: actions/upload-artifact@v4
with:
name: guest-server-artifacts
path: guest_server/
release:
runs-on: ubuntu-22.04
if: >-
startsWith(github.ref, 'refs/tags/') ||
(github.event_name == 'workflow_dispatch' && github.event.inputs.build_type == 'all')
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Update USB IDs database
run: |
echo "Removing old usb.ids file..."
rm -f data/usb.ids
echo "Downloading latest usb.ids from linux-usb.org..."
curl -o data/usb.ids http://www.linux-usb.org/usb.ids
echo "USB IDs database updated successfully"
- name: Show build type
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "Manual workflow triggered with build type: ${{ github.event.inputs.build_type }}"
else
echo "Release workflow triggered by tag: ${{ github.ref_name }}"
fi
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev libusb-1.0-0-dev
- name: Set up Bun
uses: oven-sh/setup-bun@v2
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "stable"
cache-dependency-path: "guest_server/go.sum"
- name: Install dependencies
run: bun ci
- name: Build guest server and app
run: bun run build:linux-gs
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ELECTRON_BUILDER_COMPRESSION_LEVEL: 5
- name: Zip unpacked variant
run: cd dist && zip -r winboat-linux-unpacked.zip linux-unpacked/
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: |
dist/*.AppImage
dist/*.deb
dist/*.rpm
dist/*.tar.bz2
dist/winboat-linux-unpacked.zip
dist/latest-linux.yml
dist/linux-unpacked/resources/guest_server/winboat_guest_server.zip
draft: false
prerelease: false
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .gitignore
================================================
node_modules
dist
build
.vscode
.idea
result
package-lock.json
# src/renderer/public/*
# Custom
# *.exe
temp
guest_server/winboat_guest_server.exe
guest_server/winboat_guest_server.zip
================================================
FILE: .npmrc
================================================
engine-strict=true
================================================
FILE: .prettierignore
================================================
# Ignore xel's files
/src/renderer/public/xel
================================================
FILE: .prettierrc
================================================
{
"tabWidth": 4,
"printWidth": 120,
"arrowParens": "avoid"
}
================================================
FILE: CODE_OF_CONDUCT.md
================================================
The WinBoat code of conduct is derived from [Ladybird](https://github.com/LadybirdBrowser/ladybird/blob/master/CODE_OF_CONDUCT.md).
- Participants will be tolerant of opposing views.
- Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
- When interpreting the words and actions of others, participants should always assume good intentions.
- Behavior that can be reasonably considered harassment will not be tolerated.
================================================
FILE: CONTRIBUTING.md
================================================
# WinBoat Contribution Guidelines
This document outlines the general contribution guidelines that apply to WinBoat.
> [!TIP]
> If you're new to open source, the [Open Source Etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) is an excellent read that you should check out before reading the rest of this document.
> [!IMPORTANT]
> Basic familiarity with Git and GitHub is required: If you are also new to these tools, visit [GitHub for complete beginners](https://github.com/git-guides#learning-git-basics) for a comprehensive introduction to them.
## General
1. **Avoid vibe-coding large features** - While probably most of us use AI while coding in our day to day lives, you should try to use it in a clever and targetted manner. Avoid submitting large vibe-coded features, because in 99% of the cases they will not behave as expected. These kinds of PR-s drain our energy and time that could be focused on something more useful, because what took a few seconds for the AI assistant to pump out will take us hours to test, discuss, and ultimately scrap because it doesn't take into account half the things a real programmer probably would. If you made heavy use of AI in your pull request, **indicate it**.
2. **Do not break existing code** - WinBoat aims to provide a seamless user experience, so please avoid the breakage of any existing features to the best of your abilities. Ensure that folks potentially upgrading to a new version that includes your changes won't have any problems, and address any migrations if they're required.
3. **Do rigorous testing** - WinBoat is used by tens of thousands of folks every day on a wide range of Linux distros, make sure that the PR you submit doesn't break compatibility on any of the mainstream distros.
4. **If you're unsure, ask** - If you want to start working on something large that you then intend for us to merge into WinBoat, it may be worth asking us first in an issue to understand if the feature is compatible with the philosophy of WinBoat and whether we want to include it. The same idea applies if you're unsure how to implement a feature in a way that's compatible with how WinBoat operates.
5. **Avoid introducing new programming languages** - WinBoat uses TypeScript & Vue for the Electron app, and Go & PowerShell for the Guest Server. Use these for getting things done.
6. **Avoid introducing new foreign dependencies** - Chances are there's an NPM / Go package for what you're trying to achieve or at least something similar. If there isn't, and it's a must to include it, discuss with us first.
## Branch Management
Before contributing, you should always create a personal fork of WinBoat, where you can create a dedicated branch for the changes you're aiming to make. Once you're finished with your changes, you can go ahead and create a PR aiming to merge your changes to WinBoat's main branch. If you're still in the process of development, but you'd still like to open a PR for visibility or discussion, make sure that you open a draft PR instead.
**Branch naming convention:** Use descriptive names like `feat/your-feature-name` or `fix/issue-description`
## Pull Requests & Commits
Your PR title should include what it's trying to do, e.g. `feat: Add VNC port into Configuration`, while the description should outline it in more detail, potentially explaining how the feature works, details on the implementation, and/or why the feature is useful.
Make sure you reference any issues that are potentially linked to your Pull Request using GitHub's [keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue), either via comments or commit messages.
WinBoat generally uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) naming scheme. You should aim to stick to these conventions whenever possible.
## Review & Merging Process
After you've submitted your changes as a PR, a maintainer may request changes to your code before merging. If everything goes well, your PR will be merged and shipped in the next version of WinBoat.
In case we find issues later on, the PR commits might be reverted and additional discussion will take place in the PR thread or a separate issue.
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2026 TibixDev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
<div align="left">
<table>
<tr>
<td>
<img src="icons/winboat_logo.svg" alt="WinBoat Logo" width="150">
</td>
<td>
<h1 style="color: #7C86FF; margin: 0; font-size: 32px;">WinBoat</h1>
<p style="color: oklch(90% 0 0); font-size: 14px; margin: 5px 0;">Windows for Penguins.<br>
Run Windows apps on 🐧 Linux with ✨ seamless integration</p>
</td>
</tr>
</table>
</div>
## Screenshots
<div align="center">
<img src="gh-assets/features/feat_dash.png" alt="WinBoat Dashboard" width="45%">
<img src="gh-assets/features/feat_apps.png" alt="WinBoat Apps" width="45%">
<img src="gh-assets/features/feat_native.png" alt="Native Windows" width="45%">
</div>
## ⚠️ Work in Progress ⚠️
WinBoat is currently in beta, so expect to occasionally run into hiccups and bugs. You should be comfortable with some level of troubleshooting if you decide to try it, however we encourage you to give it a shot anyway.
## Features
- **🎨 Elegant Interface**: Sleek and intuitive interface that seamlessly integrates Windows into your Linux desktop environment, making it feel like a native experience
- **📦 Automated Installs**: Simple installation process through our interface - pick your preferences & specs and let us handle the rest
- **🚀 Run Any App**: If it runs on Windows, it can run on WinBoat. Enjoy the full range of Windows applications as native OS-level windows in your Linux environment
- **🖥️ Full Windows Desktop**: Access the complete Windows desktop experience when you need it, or run individual apps seamlessly integrated into your Linux workflow
- **📁 Filesystem Integration**: Your home directory is mounted in Windows, allowing easy file sharing between the two systems without any hassle
- **✨ And many more**: Smartcard passthrough, resource monitoring, and more features being added regularly
## How Does It Work?
WinBoat is an Electron app which allows you to run Windows apps on Linux using a containerized approach. Windows runs as a VM inside a Docker/Podman container, we communicate with it using the [WinBoat Guest Server](https://github.com/TibixDev/winboat/tree/main/guest_server) to retrieve data we need from Windows. For compositing applications as native OS-level windows, we use FreeRDP together with Windows's RemoteApp protocol.
## Prerequisites
Before running WinBoat, ensure your system meets the following requirements:
- **RAM**: At least 4 GB of RAM
- **CPU**: At least 2 CPU threads
- **Storage**: At least 32 GB free space on the drive your selected install folder corresponds to
- **Virtualization**: KVM enabled in BIOS/UEFI
- [How to enable virtualization](https://duckduckgo.com/?t=h_&q=how+to+enable+virtualization+in+%3Cmotherboard+brand%3E+bios&ia=web)
- **In case of Docker:**
- **Docker**: Required for containerization
- [Installation Guide](https://docs.docker.com/engine/install/)
- **⚠️ NOTE:** Docker Desktop is **not** supported, you will run into issues if you use it
- **Docker Compose v2**: Required for compatibility with docker-compose.yml files
- [Installation Guide](https://docs.docker.com/compose/install/#plugin-linux-only)
- **Docker User Group**: Add your user to the `docker` group
- [Setup Instructions](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)
- **In case of Podman:**
- **Podman**: Required for containerization
- [Installation Guide](https://podman.io/docs/installation#installing-on-linux)
- **Podman Compose**: Required for compatibility with podman-compose.yml files
- [Installation Guide](https://github.com/containers/podman-compose?tab=readme-ov-file#installation)
- **FreeRDP**: Required for remote desktop connection (Please make sure you have **Version 3.x.x** with sound support included)
- [Installation Guide](https://github.com/FreeRDP/FreeRDP/wiki/PreBuilds)
- [OPTIONAL] **Kernel Modules**: The `iptables` / `nftables` and `iptable_nat` kernel modules can be loaded for network autodiscovery and better shared filesystem performance, but this is not obligatory in newer versions of WinBoat
- [Module loading instructions](https://rentry.org/rmfq2e5e)
## Downloading
You can download the latest Linux builds under the [Releases](https://github.com/TibixDev/winboat/releases) tab. We currently offer four variants:
- **AppImage:** A popular & portable app format which should run fine on most distributions
- **Unpacked:** The raw unpacked files, simply run the executable (`linux-unpacked/winboat`)
- **.deb:** The intended format for Debian based distributions
- **.rpm:** The intended format for Fedora based distributions
- **Nix (Nixpkgs)**
1. Add the winboat package to your config (ensure using nixpkgs-unstable)
using `environment.systemPackages = [pkgs.winboat];` or `home.packages = [pkgs.winboat];` if using home manager.
2. Add the following lines to your nix configuration
```nix
virtualisation.docker.enable = true;
users.users.{yourUser}.extraGroups = ["docker"];
```
## Known Issues About Container Runtimes
- Docker Desktop is **unsupported** for now
- USB passthrough via Podman is currently **unsupported**
## Building WinBoat
- For building you need to have Bun and Go installed on your system
- Clone the repo (`git clone https://github.com/TibixDev/WinBoat`)
- Install the dependencies (`bun i`)
- Build the app and the guest server using `bun run build:linux-gs`
- You can now find the built app under `dist` with an AppImage and an Unpacked variant
## Running WinBoat in development mode
- Make sure you meet the [prerequisites](#prerequisites)
- Additionally, for development you need to have Bun and Go installed on your system
- Clone the repo (`git clone https://github.com/TibixDev/WinBoat`)
- Install the dependencies (`bun i`)
- Build the guest server (`bun run build:gs`)
- Run the app (`bun run dev`)
## Contributing
Contributions are welcome! Whether it's bug fixes, feature improvements, or documentation updates, we appreciate your help making WinBoat better.
**Please note**: We maintain a focus on technical contributions only. Pull requests containing political/sexual content, or other sensitive/controversial topics will not be accepted. Let's keep things focused on making great software! 🚀
Feel free to:
- Report bugs and issues
- Submit feature requests
- Contribute code improvements
- Help with documentation
- Share feedback and suggestions
Check out our issues page to get started, or feel free to open a new issue if you've found something that needs attention.
## License
WinBoat is licensed under the [MIT](https://github.com/TibixDev/winboat/blob/main/LICENSE) license
## Inspiration / Alternatives
These past few years some cool projects have surfaced with similar concepts, some of which we've also taken inspirations from.\
They're awesome and you should check them out:
- [WinApps](https://github.com/winapps-org/winapps)
- [Cassowary](https://github.com/casualsnek/cassowary)
- [dockur/windows](https://github.com/dockur/windows) (🌟 Also used in WinBoat)
## Socials & Contact
- [](https://www.winboat.app/)
- [](https://x.com/winboat_app)
- [](https://fosstodon.org/@winboat)
- [](http://bsky.app/profile/winboat.app)
- [](http://discord.gg/MEwmpWm4tN)
- [](mailto:staff@winboat.app)
- [](https://deepwiki.com/TibixDev/winboat)
## Star History
<a href="https://www.star-history.com/#tibixdev/winboat&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=tibixdev/winboat&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=tibixdev/winboat&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=tibixdev/winboat&type=Date" />
</picture>
</a>
================================================
FILE: SECURITY.md
================================================
# Security Policy
WinBoat takes security very seriously, if you believe you have found a security vulnerability within WinBoat, do the following steps:
1. Construct a PoC (Proof of Concept) showcasing how the vulnerability can be used in real world scenarios.
2. Make a video showcasing the vulnerability.
3. Send an email to `staff@winboat.app` with the subject line `[SECURITY] Example Vulnerability` or contact any maintainer on [Discord](https://discord.gg/MEwmpWm4tN) (faster).
4. We will respond as soon as possible and begin working on a fix if your vulnerability qualifies. During this time, please avoid disclosing it to any third parties or the general public for obvious reasons. Our commit messages will likely not indicate that it's a fix for a security vulnerability in specific, this is to minimize any N-day attacks.
5. A release will be made including the fix for the vulnerability, which will be mentioned in the patch notes.
================================================
FILE: build-guest-server.sh
================================================
#!/bin/bash
set -e
echo "Building guest server..."
# Variables
export GOOS=windows
export GOARCH=amd64
export PACKAGE=winboat-server
export VERSION="$(bun -p "require('./package.json').version")"
export COMMIT_HASH="$(git rev-parse --short HEAD)"
export BUILD_TIMESTAMP=$(date '+%Y-%m-%dT%H:%M:%S')
export LDFLAGS=(
"-X 'main.Version=${VERSION}'"
"-X 'main.CommitHash=${COMMIT_HASH}'"
"-X 'main.BuildTimestamp=${BUILD_TIMESTAMP}'"
)
echo "Version: ${VERSION}"
echo "Commit Hash: ${COMMIT_HASH}"
echo "Build Timestamp: ${BUILD_TIMESTAMP}"
# Enter build directory
cd guest_server
# Verify nssm.exe integrity
echo "Verifying nssm.exe integrity..."
if [ -f "nssm.exe" ] && [ -f "nssm.sha1.txt" ]; then
COMPUTED_HASH=$(sha1sum nssm.exe | cut -d' ' -f1)
EXPECTED_HASH=$(cat nssm.sha1.txt | tr -d '[:space:]')
if [ "$COMPUTED_HASH" = "$EXPECTED_HASH" ]; then
echo "✓ nssm.exe integrity verified (SHA-1: $COMPUTED_HASH)"
else
echo "✗ nssm.exe integrity check FAILED!"
echo " Expected: $EXPECTED_HASH"
echo " Computed: $COMPUTED_HASH"
exit 1
fi
else
echo "⚠ Warning: nssm.exe or nssm.sha1.txt not found, skipping integrity check"
fi
# Build the guest server
go build -ldflags="${LDFLAGS[*]}" -o winboat_guest_server.exe *.go
rm -f winboat_guest_server.zip
zip -r winboat_guest_server.zip .
echo "Guest server built: guest_server/winboat_guest_server.zip"
================================================
FILE: data/usb.ids
================================================
#
# List of USB ID's
#
# Maintained by Stephen J. Gowdy <linux.usb.ids@gmail.com>
# If you have any new entries, please submit them via
# http://www.linux-usb.org/usb-ids.html
# or send entries as patches (diff -u old new) in the
# body of your email (a bot will attempt to deal with it).
# The latest version can be obtained from
# http://www.linux-usb.org/usb.ids
#
# Version: 2025.09.15
# Date: 2025-09-15 20:34:02
#
# Vendors, devices and interfaces. Please keep sorted.
# Syntax:
# vendor vendor_name
# device device_name <-- single tab
# interface interface_name <-- two tabs
0001 Fry's Electronics
7778 Counterfeit flash drive [Kingston]
0002 Ingram
0002 passport00
7007 HPRT XT300
0003 Club Mac
0004 Nebraska Furniture Mart
0011 Unknown
7788 counterfeit flash drive
001f Walmart
0b21 AB13X Headset Adapter
0040 Anyware Corporation
073d Mini Multimedia 2.4GHz Wireless Keyboard with Touch Pad
0042 DMT
0053 Planex
5301 GW-US54ZGL 802.11bg
0078 Microntek
0006 Joystick
0079 DragonRise Inc.
0006 PC TWIN SHOCK Gamepad
0011 Gamepad
1800 Mayflash Wii U Pro Game Controller Adapter [DirectInput]
181b Venom Arcade Joystick
1843 Mayflash GameCube Controller Adapter
1844 Mayflash GameCube Controller
0080 Unknown
a001 JMS578 based SATA bridge
0085 Boeye Technology Co., Ltd.
0600 eBook Reader
0102 miniSTREAK
0105 Trust International B.V.
145f NW-3100 802.11b/g 54Mbps Wireless Network Adapter [zd1211]
0127 IBP
0002 HDM Interface
0127 ibp
0145 Unknown
0112 Card Reader
017c MLK
145f Trust Deskset
019c mek
0042 mek_42
0200 TP-Link
0201 MA180 UMTS Modem
0204 Chipsbank Microelectronics Co., Ltd
6025 CBM2080 / CBM2090 Flash drive controller
6026 CBM1180 Flash drive controller
0218 Hangzhou Worlde
0301 MIDI Port
0231 Sonuus Limited
02ad HUMAX Co., Ltd.
138c PVR Mass Storage
0300 Ajazz
1010 Akp153E Desktop Controller
1020 AKP153R Desktop Controller
0303 Mini Automation Controller
0324 OCZ Technology Inc
bc06 OCZ ATV USB 2.0 Flash Drive
bc08 OCZ Rally2/ATV USB 2.0 Flash Drive
0325 OCZ Technology Inc
ac02 ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive
0386 LTS
0001 PSX for USB Converter
03c3 ZWO
120e ASI120MC-S Planetary Camera
1f10 EFF
294f ASI294MC Pro
03d9 Shenzhen Sinote Tech-Electron Co., Ltd
0499 SE340D PC Remote Control
03da Bernd Walter Computer Technology
0002 HD44780 LCD interface
03e7 Intel
2150 Myriad VPU [Movidius Neural Compute Stick]
2485 Movidius MyriadX
f63b Myriad VPU [Movidius Neural Compute Stick]
03e8 EndPoints, Inc.
0004 SE401 Webcam
0008 101 Ethernet [klsi]
0015 ATAPI Enclosure
2123 SiPix StyleCam Deluxe
8004 Aox 99001
03e9 Melexis (formerly Thesys Microelectronics)
03ea Data Broadcasting Corp.
03eb Atmel Corp.
0902 4-Port Hub
2002 Mass Storage Device
2015 at90usbkey sample firmware (HID keyboard)
2018 at90usbkey sample firmware (CDC ACM)
2019 stk525 sample firmware (microphone)
201c at90usbkey sample firmware (HID mouse)
201d at90usbkey sample firmware (HID generic)
2022 at90usbkey sample firmware (composite device)
2040 LUFA Test PID
2041 LUFA Mouse Demo Application
2042 LUFA Keyboard Demo Application
2043 LUFA Joystick Demo Application
2044 LUFA CDC Demo Application
2045 LUFA Mass Storage Demo Application
2046 LUFA Audio Output Demo Application
2047 LUFA Audio Input Demo Application
2048 LUFA MIDI Demo Application
2049 Stripe Snoop Magnetic Stripe Reader
204a LUFA CDC Class Bootloader
204b LUFA USB to Serial Adapter Project
204c LUFA RNDIS Demo Application
204d LUFA Combined Mouse and Keyboard Demo Application
204e LUFA Dual CDC Demo Application
204f LUFA Generic HID Demo Application
2060 Benito Programmer Project
2061 LUFA Combined Mass Storage and Keyboard Demo Application
2062 LUFA Combined CDC and Mouse Demo Application
2063 LUFA Datalogger Device
2064 Interfaceless Control-Only LUFA Devices
2065 LUFA Test and Measurement Demo Application
2066 LUFA Multiple Report HID Demo
2067 LUFA HID Class Bootloader
2068 LUFA Virtual Serial/Mass Storage Demo
2069 LUFA Webserver Project
2103 JTAG ICE mkII
2104 AVR ISP mkII
2105 AVRONE!
2106 STK600 development board
2107 AVR Dragon
2109 STK541 ZigBee Development Board
210a AT86RF230 [RZUSBSTICK] transceiver
210d XPLAIN evaluation kit (CDC ACM)
2110 AVR JTAGICE3 Debugger and Programmer
2111 Xplained Pro board debugger and programmer
2122 XMEGA-A1 Explained evaluation kit
2140 AVR JTAGICE3 (v3.x) Debugger and Programmer
2141 ICE debugger
2145 ATMEGA328P-XMINI (CDC ACM)
2310 EVK11xx evaluation board
2404 The Micro
2fe4 ATxmega32A4U DFU bootloader
2fe6 Cactus V6 (DFU)
2fea Cactus RF60 (DFU)
2fee atmega8u2 DFU bootloader
2fef atmega16u2 DFU bootloader
2ff0 atmega32u2 DFU bootloader
2ff1 at32uc3a3 DFU bootloader
2ff3 atmega16u4 DFU bootloader
2ff4 atmega32u4 DFU bootloader
2ff6 at32uc3b0/1 DFU bootloader
2ff7 at90usb82 DFU bootloader
2ff8 at32uc3a0/1 DFU bootloader
2ff9 at90usb646/647 DFU bootloader
2ffa at90usb162 DFU bootloader
2ffb at90usb AVR DFU bootloader
2ffd at89c5130/c5131 DFU bootloader
2fff at89c5132/c51snd1c DFU bootloader
3301 at43301 4-Port Hub
3312 4-Port Hub
4102 AirVast W-Buddie WN210
5601 at76c510 Prism-II 802.11b Access Point
5603 Cisco 7920 WiFi IP Phone
6119 AT91SAM CDC Demo Application
6124 at91sam SAMBA bootloader
6127 AT91SAM HID Keyboard Demo Application
6129 AT91SAM Mass Storage Demo Application
6200 AT91SAM HID Mouse Demo Application
7603 D-Link DWL-120 802.11b Wireless Adapter [Atmel at76c503a]
7604 at76c503a 802.11b Adapter
7605 at76c503a 802.11b Adapter
7606 at76c505 802.11b Adapter
7611 at76c510 rfmd2948 802.11b Access Point
7613 WL-1130 USB
7614 AT76c505a Wireless Adapter
7615 AT76C505AMX Wireless Adapter
7617 AT76C505AS Wireless Adapter
7800 Mini Album
800c Airspy HF+
ff01 WootingOne
ff02 WootingTwo
ff07 Tux Droid fish dongle
03ec Iwatsu America, Inc.
03ed Mitel Corp.
03ee Mitsumi
0000 CD-R/RW Drive
2501 eHome Infrared Receiver
2502 eHome Infrared Receiver
5609 Japanese Keyboard
641f WIF-0402C Bluetooth Adapter
6438 Bluetooth Device
6440 WML-C52APR Bluetooth Adapter
6901 SmartDisk FDD
6902 Floppy Disk Drive
7500 CD-R/RW
ffff Dongle with BlueCore in DFU mode
03f0 HP, Inc
0004 DeskJet 895c
0011 OfficeJet G55
0012 DeskJet 1125C Printer Port
0024 KU-0316 Keyboard
002a LaserJet P1102
0036 CCID Smartcard Keyboard KUS0133
0053 DeskJet 2620 All-in-One Printer
0101 ScanJet 4100c
0102 PhotoSmart S20
0104 DeskJet 880c/970c
0105 ScanJet 4200c
0107 CD-Writer Plus
010c Multimedia Keyboard Hub
0111 G55xi Printer/Scanner/Copier
0117 LaserJet 3200
011c hn210w 802.11b Adapter
011d Bluetooth 1.2 Interface [Broadcom BCM2035]
0121 HP 39g+ [F2224A], 39gs [F2223A], 40gs [F2225A], 48gII [F2226A], 49g+ [F2228A], 50g [F2229A, NW240AA]
0122 HID Internet Keyboard
0125 DAT72 Tape
0139 Barcode Scanner 4430
0201 ScanJet 6200c
0202 PhotoSmart S20
0204 DeskJet 815c
0205 ScanJet 3300c
0207 CD-Writer Plus 8200e
020c Multimedia Keyboard
0211 OfficeJet G85
0212 DeskJet 1220C
0217 LaserJet 2200
0218 APOLLO P2500/2600
0221 StreamSmart 400 [F2235AA]
0223 Digital Drive Flash Reader
022a LaserJet CP1525nw/x
0241 Link-5 micro dongle
0304 DeskJet 810c/812c
0305 ScanJet 4300c
0307 CD-Writer+ CD-4e
0311 OfficeJet G85xi
0312 Color Inkjet CP1700
0314 designjet 30/130 series
0317 LaserJet 1200
0324 SK-2885 keyboard
034a Elite Keyboard
0401 ScanJet 5200c
0404 DeskJet 830c/832c
0405 ScanJet 3400cse
0411 OfficeJet G95
0412 Printing Support
0417 LaserJet 1200 series
0423 HS-COMBO Cardreader
042a LaserJet M1132 MFP
0441 Prime [NW280AA, G8X92AA]
046b Dock G5
0483 Engage Go 10 Tablet
0504 DeskJet 885c
0505 ScanJet 2100c
0507 DVD+RW
050c 5219 Wireless Keyboard
0511 OfficeJet K60
0512 DeskJet 450
0517 LaserJet 1000
051d Bluetooth Interface
052a LaserJet M1212nf MFP
0583 Engage Go 10 Tablet
0601 ScanJet 6300c
0604 DeskJet 840c
0605 ScanJet 2200c
0610 Z24i Monitor Hub
0611 OfficeJet K60xi
0612 business inkjet 3000
0624 Bluetooth Dongle
0641 X1200 Optical Mouse
0653 DeskJet 3700 series
0683 Engage Go 10 Tablet
0701 ScanJet 5300c/5370c
0704 DeskJet 825c
0705 ScanJet 4400c
070c Personal Media Drive
0711 OfficeJet K80
0712 DeskJet 1180c
0714 Printing Support
0741 Prime Wireless Kit [FOK65AA]
0801 ScanJet 7400c
0804 DeskJet 816c
0805 HP4470C
0811 OfficeJet K80xi
0817 LaserJet 3300
0853 ENVY 5000 series
0901 ScanJet 2300c
0904 DeskJet 845c
0912 Printing Support
0917 LaserJet 3330
0924 Modular Smartcard Keyboard
0941 X500 Optical Mouse
094a Optical Mouse [672662-001]
0a01 ScanJet 2400c
0a17 color LaserJet 3700
0b01 ScanJet 82x0C
0b0c Wireless Keyboard and Optical Mouse receiver
0b17 LaserJet 2300d
0c17 LaserJet 1010
0c24 Bluetooth Dongle
0d12 OfficeJet 9100 series
0d17 LaserJet 1012
0d4a SK-2025 Keyboard
0e17 LaserJet 1015
0f0c Wireless Keyboard and Optical Mouse receiver
0f11 OfficeJet V40
0f12 Printing Support
0f17 LaserJet 1150
0f2a LaserJet 400 color M451dn
1001 Photo Scanner 1000
1002 PhotoSmart 140 series
1004 DeskJet 970c/970cse
1005 ScanJet 5400c
1011 OfficeJet V40xi
1016 Jornada 548 / iPAQ HW6515 Pocket PC
1017 LaserJet 1300
1024 Smart Card Keyboard
1027 Virtual keyboard and mouse
102a LaserJet Professional P 1102w
1102 PhotoSmart 240 series
1104 DeskJet 959c
1105 ScanJet 5470c/5490c
110c Pocket Media Drive
1111 OfficeJet v60
1116 Jornada 568 Pocket PC
1117 LaserJet 1300n
1151 PSC-750xi Printer/Scanner/Copier
1198 HID-compliant mouse
1202 PhotoSmart 320 series
1204 DeskJet 930c
1205 ScanJet 4500C/5550C
1211 OfficeJet v60xi
1217 LaserJet 2300L
1227 Virtual CD-ROM
1302 PhotoSmart 370 series
1305 ScanJet 4570c
1311 OfficeJet V30
1312 DeskJet 460
1317 LaserJet 1005
1327 iLO Virtual Hub
134a Optical Mouse
1405 ScanJet 3670
1411 PSC 750
1424 f2105 Monitor Hub
1502 PhotoSmart 420 series
1504 DeskJet 920c
150c Mood Lighting (Microchip Technology Inc.)
1511 PSC 750xi
1512 Printing Support
1517 color LaserJet 3500
1524 Smart Card Keyboard - KR
1539 Mini Magnetic Stripe Reader
1541 Prime [G8X92AA]
154a Laser Mouse
1602 PhotoSmart 330 series
1604 DeskJet 940c
1605 ScanJet 5530C PhotoSmart
1611 psc 780
1617 LaserJet 3015
161d Wireless Rechargeable Optical Mouse (HID)
1624 Smart Card Keyboard - JP
1647 Z27n G2 Monitor Hub
1702 PhotoSmart 380 series
1704 DeskJet 948C
1705 ScanJet 5590
1711 psc 780xi
1712 Printing Support
1717 LaserJet 3020
171d Bluetooth 2.0 Interface [Broadcom BCM2045]
1801 Inkjet P-2000U
1802 PhotoSmart 470 series
1804 DeskJet 916C
1805 ScanJet 7650
1811 PSC 720
1812 OfficeJet Pro K550
1817 LaserJet 3030
181d Bluetooth 2.0 Interface
1902 PhotoSmart A430 series
1904 DeskJet 3820
1911 OfficeJet V45
1917 LaserJet 3380
1a02 PhotoSmart A510 series
1a11 OfficeJet 5100 series
1a17 color LaserJet 4650
1b02 PhotoSmart A610 series
1b04 DeskJet 3810
1b05 ScanJet 4850C/4890C
1b07 Premium Starter Webcam
1c02 PhotoSmart A710 series
1c17 Color LaserJet 2550l
1d02 PhotoSmart A310 series
1d17 LaserJet 1320
1d24 Barcode scanner
1e02 PhotoSmart A320 Printer series
1e11 PSC-950
1e17 LaserJet 1160 series
1f02 PhotoSmart A440 Printer series
1f11 PSC 920
1f12 OfficeJet Pro K5300
1f17 color LaserJet 5550
1f1d un2400 Gobi Wireless Modem
2001 Floppy
2002 Hub
2004 DeskJet 640c
2005 ScanJet 3570c
2012 OfficeJet Pro K5400
201d un2400 Gobi Wireless Modem (QDL mode)
2039 Cashdrawer
2102 PhotoSmart 7345
2104 DeskJet 630c
2112 OfficeJet Pro L7500
211d Sierra MC5725 [ev2210]
2202 PhotoSmart 7600 series
2205 ScanJet 3500c
2212 OfficeJet Pro L7600
2217 color LaserJet 9500 MFP
222a LaserJet Pro MFP M125nw
2302 PhotoSmart 7600 series
2304 DeskJet 656c
2305 ScanJet 3970c
2311 OfficeJet d series
2312 OfficeJet Pro L7700
2317 LaserJet 4350
231d Broadcom 2070 Bluetooth Combo
2402 PhotoSmart 7700 series
2404 Deskjet F2280 series
2405 ScanJet 4070 PhotoSmart
2417 LaserJet 4250
241d Gobi 2000 Wireless Modem (QDL mode)
2424 LP1965 19" Monitor Hub
2441 Prime G2 [2AP18AA]
2502 PhotoSmart 7700 series
2504 DeskJet F4200 series
2505 ScanJet 3770
2512 OfficeJet Pro L7300 / Compaq LA2405 series monitor
2514 4-port hub
2517 LaserJet 2410
251d Gobi 2000 Wireless Modem
2524 LP3065 30" Monitor Hub
2602 PhotoSmart A520 series
2605 ScanJet 3800c
2611 OfficeJet 7100 series
2617 Color LaserJet 2820 series
2624 Pole Display (HP522 2 x 20 Line Display)
2702 PhotoSmart A620 series
2704 DeskJet 915
2717 Color LaserJet 2830
2724 Magnetic Stripe Reader IDRA-334133-HP
2805 Scanjet G2710
2811 PSC-2100
2817 Color LaserJet 2840
2841 OMEN MINDFRAME [3XT27AA]
2902 PhotoSmart A820 series
2911 PSC 2200
2917 LaserJet 2420
2a11 PSC 2150 series
2a17 LaserJet 2430
2a1d Integrated Module with Bluetooth 2.1 Wireless technology
2b11 PSC 2170 series
2b17 LaserJet 1020
2b4a Business Slim Keyboard
2c12 Officejet J4680
2c17 LaserJet 1022
2c24 Logitech M-UAL-96 Mouse
2d05 Scanjet 7000
2d11 OfficeJet 6110
2d17 Printing Support
2d2a LaserJet Pro MFP M225dw
2e11 PSC 1000
2e17 LaserJet 2600n
2e24 LP2275w Monitor Hub
2f11 PSC 1200
2f17 Color LaserJet 2605dn
2f24 LP2475w Monitor Hub
3002 PhotoSmart P1000
3004 DeskJet 980c
3005 ScanJet 4670v
3011 PSC 1100 series
3017 Printing Support
304a Slim Keyboard
3102 PhotoSmart P1100 Printer w/ Card Reader
3104 DeskJet 960c
3111 OfficeJet 4100 series
3117 EWS 2605dtn
311d Atheros AR9285 Malbec Bluetooth Adapter
312a LaserJet Pro M701n
3202 PhotoSmart 1215
3207 4 GB flash drive
3211 OfficeJet 4105 series
3217 LaserJet 3050
3302 PhotoSmart 1218
3304 DeskJet 990c
3307 v125w Stick
3312 OfficeJet J6410
3317 LaserJet 3052
3402 PhotoSmart 1115
3404 DeskJet 6122
3417 LaserJet 3055
3502 PhotoSmart 230
3504 DeskJet 6127c
3511 PSC 2300
3517 LaserJet 3390
354a Slim Keyboard
3602 PhotoSmart 1315
3611 PSC 2410 PhotoSmart
3612 Officejet Pro 8000 A809
3617 Color LaserJet 2605
3711 PSC 2500
3717 EWS UPD
3724 Webcam
3802 PhotoSmart 100
3807 c485w Flash Drive
3817 LaserJet P2015 series
3902 PhotoSmart 130
3912 Officejet Pro 8500
3917 LaserJet P2014
3a02 PhotoSmart 7150
3a11 OfficeJet 5500 series
3a17 Printing Support
3a1d hs2340 HSPA+ mobile broadband
3b02 PhotoSmart 7150~
3b05 Scanjet N8460
3b11 PSC 1300 series
3b17 LaserJet M1005 MFP
3b2a Color LaserJet MFP M277dw
3c02 PhotoSmart 7350
3c05 Scanjet Professional 1000 Mobile Scanner
3c11 PSC 1358
3c17 EWS UPD
3d02 PhotoSmart 7350~
3d11 OfficeJet 4215
3d17 LaserJet P1005
3e02 PhotoSmart 7550
3e07 x755w Flash Drive
3e17 LaserJet P1006
3f02 PhotoSmart 7550~
3f11 PSC-1315/PSC-1317
3f17 Laserjet P1505
4002 PhotoSmart 635/715/720/735/935/E337 (storage)
4004 CP1160
4102 PhotoSmart 618
4105 ScanJet 4370
4111 OfficeJet 7200 series
4117 LaserJet 1018
4202 PhotoSmart 812
4205 ScanJet G3010
4211 OfficeJet 7300 series
4217 EWS CM1015
4302 PhotoSmart 850 (ptp)
4305 ScanJet G3110
4311 OfficeJet 7400 series
4317 Color LaserJet CM1017
4402 PhotoSmart 935 (ptp)
4417 EWS UPD
4502 PhotoSmart 945 (PTP mode)
4505 ScanJet G4010
4507 External HDD
4511 PhotoSmart 2600
4512 E709n [Officejet 6500 Wireless]
4517 EWS UPD
4605 ScanJet G4050
4611 PhotoSmart 2700
4717 Color LaserJet CP1215
4811 PSC 1600
484a Elite Dock G4
4911 PSC 2350
4b11 OfficeJet 6200
4c11 PSC 1500 series
4c17 EWS UPD
4d11 PSC 1400
4d17 EWS UPD
4e11 PhotoSmart 2570 series
4f11 OfficeJet 5600 (USBHUB)
4f17 Color LaserJet CM1312 MFP
5004 DeskJet 995c
5011 PhotoSmart 3100 series
5017 EWS UPD
5111 PhotoSmart 3200 series
5211 PhotoSmart 3300 series
5307 v165w Stick
5311 OfficeJet 6300
5312 Officejet Pro 8500A
5317 Color LaserJet CP2025 series
5411 OfficeJet 4300
5511 DeskJet F300 series
5611 PhotoSmart C3180
5617 LaserJet M1120 MFP
5711 PhotoSmart C4100 series
5717 LaserJet M1120n MFP
5811 PhotoSmart C5100 series
5817 LaserJet M1319f MFP
581d lt4112 Gobi 4G Module Network Device
5911 PhotoSmart C6180
5912 Officejet Pro 8600
5a11 PhotoSmart C7100 series
5b11 OfficeJet J2100 series
5b12 Officejet Pro 8100
5c11 PhotoSmart C4200 Printer series
5c12 OfficeJet 6700
5c17 LaserJet P2055 series
5d11 PhotoSmart C5200 series
5e11 PhotoSmart D7400 series
6004 DeskJet 5550
6102 Hewlett Packard Digital Camera
6104 DeskJet 5650c
6117 color LaserJet 3550
6202 PhotoSmart 215
6204 DeskJet 5150c
6217 Color LaserJet 4700
6302 PhotoSmart 318/612
6317 Color LaserJet 4730mfp
632a LaserJet M203-M206
6402 PhotoSmart 715 (ptp)
6411 PhotoSmart C8100 series
6417 LaserJet 5200
6502 PhotoSmart 120 (ptp)
6511 PhotoSmart C7200 series
6602 PhotoSmart 320
6611 PhotoSmart C4380 series
6617 LaserJet 5200L
6702 PhotoSmart 720 (ptp)
6717 Color LaserJet 3000
6802 PhotoSmart 620 (ptp)
6811 PhotoSmart D5300 series
6817 Color LaserJet 3800
6911 PhotoSmart D7200 series
6917 Color LaserJet 3600
6a02 PhotoSmart 735 (ptp)
6a11 PhotoSmart C6200 series
6a17 LaserJet 4240
6b02 PhotoSmart R707 (PTP mode)
6b11 Photosmart C4500 series
6c11 Photosmart C4480
6c17 Color LaserJet 4610
6f17 Color LaserJet CP6015 series
7004 DeskJet 3320c
7102 PhotoSmart 635 (PTP mode)
7104 DeskJet 3420c
7117 CM8060 Color MFP with Edgeline Technology
7202 PhotoSmart 43x (ptp)
7204 DeskJet 36xx
7217 LaserJet M5035 MFP
7302 PhotoSmart M307 (PTP mode)
7304 DeskJet 35xx
7311 Photosmart Premium C309
7317 LaserJet P3005
7404 Printing Support
7417 LaserJet M4345 MFP
7504 Printing Support
7517 LaserJet M3035 MFP
7604 DeskJet 3940
7611 DeskJet F2492 All-in-One
7617 LaserJet P3004
7702 PhotoSmart R817 (PTP mode)
7704 DeskJet D4100
7717 CM8050 Color MFP with Edgeline Technology
7804 DeskJet D1360
7817 Color LaserJet CP3505
7917 LaserJet M5025 MFP
7a02 PhotoSmart M415 (PTP mode)
7a04 DeskJet D2460
7a11 Photosmart B109
7a17 LaserJet M3027 MFP
7b02 PhotoSmart M23 (PTP mode)
7b17 Color LaserJet CP4005
7c17 Color LaserJet CM6040 series
7d04 DeskJet F2100 Printer series
7d17 Color LaserJet CM4730 MFP
7e04 DeskJet F4100 Printer series
8017 LaserJet P4515
8104 Printing Support
8117 LaserJet P4015
811c Ethernet HN210E
8204 Printing Support
8207 FHA-3510 2.4GHz Wireless Optical Mobile Mouse
8217 LaserJet P4014
8317 LaserJet M9050 MFP
8404 DeskJet 6800 series
8417 LaserJet M9040 MFP
8504 DeskJet 6600 series
8604 DeskJet 5440
8607 Optical Mobile Mouse
8704 DeskJet 5940
8711 Deskjet 2050 J510
8804 DeskJet 6980 series
8904 DeskJet 6940 series
8911 Deskjet 1050 J410
8c07 Digital Stereo Headset
8c11 Deskjet F4500 series
9002 PhotoSmart M437
9102 PhotoSmart M537
9207 HD-4110 Webcam
9302 PhotoSmart R930 series
9402 PhotoSmart R837
942a LaserJet Pro M12a
9502 PhotoSmart R840 series
952a LaserJet Pro M12w
9602 PhotoSmart M730 series
9702 PhotoSmart R740 series
9802 PhotoSmart Mz60 series
9902 PhotoSmart M630 series
9a02 PhotoSmart E330 series
9b02 PhotoSmart M540 series
9b07 Portable Drive
9c02 PhotoSmart M440 series
a004 DeskJet 5850c
a011 Deskjet 3050A
a407 Wireless Optical Comfort Mouse
b002 PhotoSmart 7200 series
b102 PhotoSmart 7200 series
b107 v255w/c310w Flash Drive
b116 Webcam
b202 PhotoSmart 7600 series
b302 PhotoSmart 7600 series
b402 PhotoSmart 7700 series
b502 PhotoSmart 7700 series
b602 PhotoSmart 7900 series
b702 PhotoSmart 7900 series
b802 PhotoSmart 7400 series
b902 PhotoSmart 7800 series
ba02 PhotoSmart 8100 series
bb02 PhotoSmart 8400 series
bc02 PhotoSmart 8700 series
bc11 Photosmart 7520 series
bd02 PhotoSmart Pro B9100 series
bef4 NEC Picty760
c002 PhotoSmart 7800 series
c102 PhotoSmart 8000 series
c111 Deskjet 1510
c202 PhotoSmart 8200 series
c211 Deskjet 2540 series
c302 DeskJet D2300
c402 PhotoSmart D5100 series
c502 PhotoSmart D6100 series
c602 PhotoSmart D7100 series
c702 PhotoSmart D7300 series
c802 PhotoSmart D5060 Printer
d104 Bluetooth Dongle
d507 39gII [NW249AA]
efbe NEC Picty900
f0be NEC Picty920
f1be NEC Picty800
03f1 Genoa Technology
03f2 Oak Technology, Inc.
03f3 Adaptec, Inc.
0020 AWN-8020 WLAN [Intersil PRISM 2.5]
0080 AVC-1100 Audio Capture
0083 AVC-2200 Device
0087 AVC-2210 Loader
0088 AVC-2210 Device
008b AVC-2310 Loader
008c AVC-2310 Device
0094 eHome Infrared Receiver
009b AVC-1410 GameBridge TV NTSC
2000 USBXchange Firmware Loader
2001 USBXchange Adapter
2002 USB2-Xchange Firmware Loader
2003 USB2-Xchange Adapter
4000 4-port hub
adcc Composite Device Support
03f4 Diebold, Inc.
03f5 Siemens Electromechanical
03f8 Epson Imaging Technology Center
03f9 KeyTronic Corp.
0100 KT-2001 Keyboard
0101 Keyboard
0102 Keyboard Mouse
03fb OPTi, Inc.
03fc Elitegroup Computer Systems
03fd Xilinx, Inc.
0008 Platform Cable USB II
0050 dfu downloader
03fe Farallon Comunications
0400 National Semiconductor Corp.
05dc Rigol Technologies DS1000USB Oscilloscope
0807 Bluetooth Dongle
080a Bluetooth Device
09c4 Rigol Technologies DG1022 Arbitrary Waveform Generator
1000 Mustek BearPaw 1200 Scanner
1001 Mustek BearPaw 2400 Scanner
1237 Hub
a000 Smart Display Reference Device
c359 Logitech Harmony
c35b Printing Support
c55d Rigol Technologies DS5000USB Oscilloscope
0401 National Registry, Inc.
0402 ALi Corp.
5462 M5462 IDE Controller
5602 M5602 Video Camera Controller
5603 M5603 Video Camera Controller
5606 M5606 Video Camera Controller [UVC]
5621 M5621 High-Speed IDE Controller
5623 M5623 Scanner Controller
5627 Welland ME-740PS USB2 3.5" Power Saving Enclosure
5632 M5632 Host-to-Host Link
5635 M5635 Flash Card Reader
5636 USB 2.0 Storage Device
5637 M5637 IDE Controller
5642 Storage Device
5661 M5661 MP3 player
5667 M5667 MP3 player
8841 Newmine Camera
9665 Gateway Webcam
0403 Future Technology Devices International, Ltd
0000 H4SMK 7 Port Hub / Bricked Counterfeit FT232 Serial (UART) IC
0232 Serial Converter
1060 JTAG adapter
1234 IronLogic RFID Adapter [Z-2 USB]
1235 Iron Logic Z-397 RS-485/422 converter
6001 FT232 Serial (UART) IC
6002 Lumel PD12
6007 Serial Converter
6008 Serial Converter
6009 Serial Converter
6010 FT2232C/D/H Dual UART/FIFO IC
6011 FT4232H Quad HS USB-UART/FIFO IC
6014 FT232H Single HS USB-UART/FIFO IC
6015 Bridge(I2C/SPI/UART/FIFO)
601e FT600 16-bit FIFO IC
601f FT601 32-bit FIFO IC
6ee0 EZO Carrier Board
6f70 HB-RF-USB
7150 FT2232x wired for MPSSE+UART
7151 FT2232x wired for MPSSE+UART
7152 FreeCalypso dual UART with boot control
7be8 FT232R
8028 Dev board JTAG (FT232H based)
8040 4 Port Hub
8070 7 Port Hub
8140 Vehicle Explorer Interface
8210 MGTimer - MGCC (Vic) Timing System
8348 FT232BM [SIENNA Serial Interface]
8370 7 Port Hub
8371 PS/2 Keyboard And Mouse
8372 FT8U100AX Serial Port
8508 Selectronic SP PRO
87d0 Cressi Dive Computer Interface
8a28 Rainforest Automation ZigBee Controller
8a98 TIAO Multi-Protocol Adapter
8b28 Alpermann+Velte TCI70
8b29 Alpermann+Velte TC60 CLS
8b2a Alpermann+Velte Rubidium Q1
8b2b Alpermann+Velte TCD
8b2c Alpermann+Velte TCC70
9090 SNAP Stick 200
9132 LCD and Temperature Interface
9133 CallerID
9134 Virtual keyboard
9135 Rotary Pub alarm
9136 Pulsecounter
9137 Ledbutton interface
9e90 Marvell OpenRD Base/Client
9f08 CIB-1894 Conclusion SmartLink Box:
9f80 Ewert Energy Systems CANdapter
a6d0 Texas Instruments XDS100v2 JTAG / BeagleBone A3
a951 HCP HIT GSM/GPRS modem [Cinterion MC55i]
a9a0 FT2232D - Dual UART/FIFO IC - FTDI
abb8 Lego Mindstorms NXTCam
b0c0 microSensys RFID device
b0c1 microSensys RFID device
b0c2 iID contactless RFID device
b0c3 iID contactless RFID device
b0c4 RFID device
b0c5 RFID device
b810 US Interface Navigator (CAT and 2nd PTT lines)
b811 US Interface Navigator (WKEY and FSK lines)
b812 US Interface Navigator (RS232 and CONFIG lines)
b9b0 Fujitsu SK-16FX-100PMC V1.1
baf8 Amontec JTAGkey
bcd8 Stellaris Development Board
bcd9 Stellaris Evaluation Board
bcda Stellaris ICDI Board
bd90 PICAXE Download Cable [AXE027]
bdc8 Egnite GmbH - JTAG/RS-232 adapter
bfd8 OpenDCC
bfd9 OpenDCC (Sniffer)
bfda OpenDCC (Throttle)
bfdb OpenDCC (Gateway)
bfdc OpenDCC (GBM)
c580 HID UNIKEY dongle [F-Response]
c630 lcd2usb interface
c631 i2c-tiny-usb interface
c632 xu1541 c64 floppy drive interface
c633 TinyCrypt dongle
c634 glcd2usb interface
c7d0 RR-CirKits LocoBuffer-USB
c8b8 Alpermann+Velte MTD TCU
c8b9 Alpermann+Velte MTD TCU 1HE
c8ba Alpermann+Velte Rubidium H1
c8bb Alpermann+Velte Rubidium H3
c8bc Alpermann+Velte Rubidium S1
c8bd Alpermann+Velte Rubidium T1
c8be Alpermann+Velte Rubidium D1
c8bf Alpermann+Velte TC60 RLV
cc48 Tactrix OpenPort 1.3 Mitsubishi
cc49 Tactrix OpenPort 1.3 Subaru
cc4a Tactrix OpenPort 1.3 Universal
cff8 Amontec JTAGkey
d010 SCS PTC-IIusb
d011 SCS Position-Tracker/TNC
d012 SCS DRAGON 1
d013 SCS DRAGON 1
d388 Xsens converter
d389 Xsens Wireless Receiver
d38a Xsens serial converter
d38b Xsens serial converter
d38c Xsens Wireless Receiver
d38d Xsens Awinda Station
d38e Xsens serial converter
d38f Xsens serial converter
d491 Zolix Omni 1509 monochromator
d578 Accesio USB-COM-4SM
d678 GammaScout
d6f8 UNI Black BOX
d738 Propox JTAGcable II
d739 Propox ISPcable III
d9a9 Actisense USG-1 NMEA Serial Gateway
d9aa Actisense NGT-1 NMEA2000 PC Interface
d9ab Actisense NGT-1 NMEA2000 Gateway
daf4 Qundis Serial Infrared Head
e0d0 Total Phase Aardvark I2C/SPI Host Adapter
e518 IBR IMB-usb
e521 EVER Sinline XL Series UPS
e6c8 PYRAMID Computer GmbH LCD
e700 Elster Unicom III Optical Probe
e729 Segway Robotic Mobility Platforms 200
e888 Expert ISDN Control USB
e889 USB-RS232 OptoBridge
e88a Expert mouseCLOCK USB II
e88b Precision Clock MSF USB
e88c Expert mouseCLOCK USB II HBG
e8d8 Aaronia AG Spectran Spectrum Analyzer
e8dc Aaronia AG UBBV Preamplifier
ea90 Eclo 1-Wire Adapter
ecd9 miControl miCan-Stick
ed71 HAMEG HO870 Serial Port
ed72 HAMEG HO720 Serial Port
ed73 HAMEG HO730 Serial Port
ed74 HAMEG HO820 Serial Port
eea2 PCStage Lite 32 channel DMX512 Interface
ef10 FT1245BL
f070 Serial Converter 422/485 [Vardaan VEUSB422R3]
f0c8 SPROG Decoder Programmer
f0c9 SPROG-DCC CAN-USB
f0e9 Tagsys L-P101
f0ee Tagsys Medio P200x
f1a0 Asix PRESTO Programmer
f208 Papenmeier Braille-Display
f3c0 4N-GALAXY Serial Converter
f458 ABACUS ELECTRICS Optical Probe
f608 CTI USB-485-Mini
f60b CTI USB-Nano-485
f680 Suunto Sports Instrument
f758 GW Instek GDS-8x0 Oscilloscope
f7c0 ZeitControl Cardsystems TagTracer MIFARE
f850 USB-UIRT (Universal Infrared Receiver+Transmitter)
f918 Ant8 Logic Probe
f9d9 Wetterempfanger 147.3kHz
fa00 Matrix Orbital USB Serial
fa01 Matrix Orbital MX2 or MX3
fa02 Matrix Orbital MX4 or MX5
fa03 Matrix Orbital VK/LK202 Family
fa04 Matrix Orbital VK/LK204 Family
fa20 Ross-Tech HEX-USB
fc08 Crystalfontz CFA-632 USB LCD
fc09 Crystalfontz CFA-634 USB LCD
fc0b Crystalfontz CFA-633 USB LCD
fc0c Crystalfontz CFA-631 USB LCD
fc0d Crystalfontz CFA-635 USB LCD
fc0e Crystalfontz CFA-533
fc82 SEMC DSS-20/DSS-25 SyncStation
fd48 ShipModul MiniPlex-4xUSB NMEA Multiplexer
fd49 ShipModul MiniPlex-4xUSB-AIS NMEA Multiplexer
fd4b ShipModul MiniPlex NMEA Multiplexer
ff08 ToolHouse LoopBack Adapter
ff18 ScienceScope Logbook ML
ff19 Logbook Bus
ff1a Logbook Bus
ff1b Logbook Bus
ff1c ScienceScope Logbook LS
ff1d ScienceScope Logbook HS
ff1e Logbook Bus
ff1f Logbook Bus
0404 NCR Corp.
0202 78XX Scanner
0203 78XX Scanner - Embedded System
0310 K590 Printer, Self-Service
0311 7167 Printer, Receipt/Slip
0312 7197 Printer Receipt
0320 5932-USB Keyboard
0321 5953-USB Dynakey
0322 5932-USB Enhanced Keyboard
0323 5932-USB Enhanced Keyboard, Flash-Recovery/Download
0324 5953-USB Enhanced Dynakey
0325 5953-USB Enhanced Dynakey Flash-Recovery/Download
0328 K016: USB-MSR ISO 3-track MSR: POS Standard (See HID pages)
0329 K018: USB-MSR JIS 2-Track MSR: POS Standard
032a K016: USB-MSR ISO 3-Track MSR: HID Keyboard Mode
032b K016/K018: USB-MSR Flash-Recovery/Download
0405 Synopsys, Inc.
0406 Fujitsu-ICL Computers
0407 Fujitsu Personal Systems, Inc.
0408 Quanta Computer, Inc.
0103 FV TouchCam N1 (Audio)
030c HP Webcam
03b2 HP Webcam
03f4 HP Webcam
1030 FV TouchCam N1 (Video)
3000 Optical dual-touch panel
3001 Optical Touch Screen
3008 Optical Touch Screen
4033 HD Webcam
a060 HD Webcam
0409 NEC Corp.
0011 PC98 Series Layout Keyboard Mouse
0012 ATerm IT75DSU ISDN TA
0014 Japanese Keyboard
0019 109 Japanese Keyboard with Bus-Powered Hub
001a PC98 Series Layout Keyboard with Bus-Powered Hub
0025 Mini Keyboard with Bus-Powered Hub
0027 MultiSync Monitor
002c Clik!-USB Drive
0034 109 Japanese Keyboard with One-touch start buttons
003f Wireless Keyboard with One-touch start buttons
0040 Floppy
004e SuperScript 1400 Series
004f Wireless Keyboard with One-touch start buttons
0050 7-port hub
0056 uPD720133 IDE bridge
0058 HighSpeed Hub
0059 HighSpeed Hub
005a HighSpeed Hub
006a Conceptronic USB Harddisk Box
007d MINICUBE2
007e PG-FP5 Flash Memory Programmer
0081 SuperScript 1400 Series
0082 SuperScript 1400 Series
0094 Japanese Keyboard with One-touch start buttons
0095 Japanese Keyboard
00a9 AtermIT21L 128K Support Standard
00aa AtermITX72 128K Support Standard
00ab AtermITX62 128K Support Standard
00ac AtermIT42 128K Support Standard
00ae INSMATEV70G-MAX Standard
00af AtermITX70 128K Support Standard
00b0 AtermITX80 128K Support Standard
00b2 AtermITX80D 128K Support Standard
00c0 Wireless Remocon
00f7 Smart Display PK-SD10
011d e228 Mobile Phone
0193 RVT-R Writer
0203 HID Audio Controls
021d Aterm WL54SU2 802.11g Wireless Adapter [Atheros AR5523]
0248 Aterm PA-WL54GU
0249 Aterm WL300NU-G
02b4 Aterm WL300NU-AG
02b6 Aterm WL300NU-GS 802.11n Wireless Adapter
02bc Computer Monitor
0300 LifeTouch Note
0301 LifeTouch Note (debug mode)
55aa Hub
55ab Hub [iMac/iTouch kbd]
8010 Intellibase Hub
8011 Intellibase Hub
efbe P!cty 900 [HP DJ]
f0be P!cty 920 [HP DJ 812c]
040a Kodak Co.
0001 DVC-323
0002 DVC-325
0100 DC-220
0110 DC-260
0111 DC-265
0112 DC-290
0120 DC-240
0121 DC-240 (PTP firmware)
0130 DC-280
0131 DC-5000
0132 DC-3400
0140 DC-4800
0160 DC4800
0170 DX3900
0200 Digital Camera
0300 EZ-200
0400 MC3
0402 Digital Camera
0403 Z7590
0500 DX3500
0510 DX3600
0525 DX3215
0530 DX3700
0535 EasyShare CX4230 Camera
0540 LS420
0550 DX4900
0555 DX4330
0560 CX4200
0565 CX4210
0566 CX4300
0567 LS753
0568 LS443
0569 LS663
0570 DX6340
0571 CX6330
0572 DX6440
0573 CX6230
0574 CX6200
0575 DX6490
0576 DX4530
0577 DX7630
0578 CX7300/CX7310
0579 CX7220
057a CX7330
057b CX7430
057c CX7530
057d DX7440
057e C300
057f DX7590
0580 Z730
0581 Digital Camera
0582 Digital Camera
0583 Digital Camera
0584 CX6445
0585 Digital Camera
0586 CX7525
0587 Digital Camera
0588 Digital Camera
0589 EasyShare C360
058a C310
058b Digital Camera
058c C330
058d C340
058e V530
058f V550
0590 Digital Camera
0591 Digital Camera
0592 Digital Camera
0593 Digital Camera
0594 Digital Camera
0595 Digital Camera
0596 Digital Camera
0597 Digital Camera
0598 EASYSHARE M1033 digital camera
0599 Digital Camera
059a Digital Camera
059b Digital Camera
059c Digital Camera
059d Digital Camera
059e Digital Camera
059f Digital Camera
05a0 Digital Camera
05a1 Digital Camera
05a2 Digital Camera
05a3 Digital Camera
05a4 Digital Camera
05a5 Digital Camera
05a6 Digital Camera
05a7 Digital Camera
05a8 Digital Camera
05a9 Digital Camera
05aa Digital Camera
05ab Digital Camera
05ac Digital Camera
05ad Digital Camera
05ae Digital Camera
05af Digital Camera
05b0 Digital Camera
05b1 Digital Camera
05b2 Digital Camera
05b3 EasyShare Z710 Camera
05b4 Digital Camera
05b5 Digital Camera
05b6 Digital Camera
05b7 Digital Camera
05b8 Digital Camera
05b9 Digital Camera
05ba Digital Camera
05bb Digital Camera
05bc Digital Camera
05bd Digital Camera
05be Digital Camera
05bf Digital Camera
05c0 Digital Camera
05c1 Digital Camera
05c2 Digital Camera
05c3 Digital Camera
05c4 Digital Camera
05c5 Digital Camera
05c8 EASYSHARE Z1485 IS Digital Camera
05d3 EasyShare M320 Camera
05d4 EasyShare C180 Digital Camera
1001 EasyShare SV811 Digital Picture Frame
4000 InkJet Color Printer
4021 Photo Printer 6800
4022 1400 Digital Photo Printer
4023 Photo Printer 8800 / 9810
402b Photo Printer 6850
402e 605 Photo Printer
4034 805 Photo Printer
4035 7000 Photo Printer
4037 7010 Photo Printer
4038 7015 Photo Printer
404d 8810 Photo Printer
404f 305 Photo Printer
4056 ESP 7200 Series AiO
4109 EasyShare Printer Dock Series 3
410d EasyShare G600 Printer Dock
5010 Wireless Adapter
5012 DBT-220 Bluetooth Adapter
6001 i30
6002 i40
6003 i50
6004 i60
6005 i80
6029 i900
602a i900
040b Weltrend Semiconductor
0a68 Func MS-3 gaming mouse [WT6573F MCU]
2000 wired Keyboard [Dynex DX-WRK1401]
2367 Human Interface Device [HP CalcPad 200 Calculator and Numeric Keypad]
6510 Weltrend Bar Code Reader
6520 Xploder Xbox Memory Unit (8MB)
6533 Speed-Link Competition Pro
6543 Manhattan Magnetic Card Strip Reader
040c VTech Computers, Ltd
040d VIA Technologies, Inc.
3184 VNT VT6656 USB-802.11 Wireless LAN Adapter
340b FX-Audio DAC-X6
340f Audinst HUD-mx2
6204 Vectro VT6204 IDE bridge
6205 USB 2.0 Card Reader
040e MCCI
040f Echo Speech Corp.
0411 BUFFALO INC. (formerly MelCo., Inc.)
0001 LUA-TX Ethernet [pegasus]
0005 LUA-TX Ethernet
0006 WLI-USB-L11 Wireless LAN Adapter
0009 LUA2-TX Ethernet
000b WLI-USB-L11G-WR Wireless LAN Adapter
000d WLI-USB-L11G Wireless LAN Adapter
0012 LUA-KTX Ethernet
0013 USB2-IDE Adapter
0016 WLI-USB-S11 802.11b Adapter
0018 USB2-IDE Adapter
001c USB-IDE Bridge: DUB-PxxG
0027 WLI-USB-KS11G 802.11b Adapter
002a SMSC USB97C202 "HD-HB300V2-EU"
003d LUA-U2-KTX Ethernet
0044 WLI-USB-KB11 Wireless LAN Adapter
004b WLI-USB-G54 802.11g Adapter [Broadcom 4320 USB]
004d WLI-USB-B11 Wireless LAN Adapter
0050 WLI2-USB2-G54 Wireless LAN Adapter
005e WLI-U2-KG54-YB WLAN
0065 Python2 WDM Encoder
0066 WLI-U2-KG54 WLAN
0067 WLI-U2-KG54-AI WLAN
006e LUA-U2-GT 10/100/1000 Ethernet Adapter
0089 RUF-C/U2 Flash Drive
008b Nintendo Wi-Fi
0091 WLI-U2-KAMG54 Wireless LAN Adapter
0092 WLI-U2-KAMG54 Bootloader
0097 WLI-U2-KG54-BB
00a9 WLI-U2-AMG54HP Wireless LAN Adapter
00aa WLI-U2-AMG54HP Bootloader
00b3 PC-OP-RS1 RemoteStation
00bc WLI-U2-KG125S 802.11g Adapter [Broadcom 4320 USB]
00ca 802.11n Network Adapter
00cb WLI-U2-G300N 802.11n Adapter
00d8 WLI-U2-SG54HP
00d9 WLI-U2-G54HP
00da WLI-U2-KG54L 802.11bg [ZyDAS ZD1211B]
00db External Hard Drive HD-PF32OU2 [Buffalo Ministation]
00e8 WLI-UC-G300N Wireless LAN Adapter [Ralink RT2870]
00f9 Portable DVD Writer (DVSM-PL58U2)
0105 External Hard Drive HD-CEU2 [Drive Station]
012c SATA Bridge
012e WLI-UC-AG300N Wireless LAN Adapter
0148 WLI-UC-G300HP Wireless LAN Adapter
0150 WLP-UC-AG300 Wireless LAN Adapter
0157 External Hard Drive HD-PEU2
0158 WLI-UC-GNHP Wireless LAN Adapter
015d WLI-UC-GN Wireless LAN Adapter [Ralink RT3070]
016f WLI-UC-G301N Wireless LAN Adapter [Ralink RT3072]
017f Sony UWA-BR100 802.11abgn Wireless Adapter [Atheros AR7010+AR9280]
019e WLI-UC-GNP Wireless LAN Adapter
01a1 MiniStation Metro
01a2 WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
01ba SATA Bridge
01dc Ultra-Slim Portable DVD Writer (DVSM-PC58U2V)
01de External Hard Drive HD-PCTU3 [Buffalo MiniStation]
01ea SATA Bridge
01ee WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
01f1 SATA Adapter [HD-LBU3]
01fd WLI-UC-G450 Wireless LAN Adapter
027e HD-LCU3
0412 Award Software International
0413 Leadtek Research, Inc.
1310 WinFast TV - NTSC + FM
1311 WinFast TV - NTSC + MTS + FM
1312 WinFast TV - PAL BG + FM
1313 WinFast TV - PAL BG+TXT + FM
1314 WinFast TV Audio - PHP PAL I
1315 WinFast TV Audio - PHP PAL I+TXT
1316 WinFast TV Audio - PHP PAL DK
1317 WinFast TV Audio - PHP PAL DK+TXT
1318 WinFast TV - PAL I/DK + FM
1319 WinFast TV - PAL N + FM
131a WinFast TV Audio - PHP SECAM LL
131b WinFast TV Audio - PHP SECAM LL+TXT
131c WinFast TV Audio - PHP SECAM DK
131d WinFast TV - SECAM DK + TXT + FM
131e WinFast TV - NTSC Japan + FM
1320 WinFast TV - NTSC
1321 WinFast TV - NTSC + MTS
1322 WinFast TV - PAL BG
1323 WinFast TV - PAL BG+TXT
1324 WinFast TV Audio - PHP PAL I
1325 WinFast TV Audio - PHP PAL I+TXT
1326 WinFast TV Audio - PHP PAL DK
1327 WinFast TV Audio - PHP PAL DK+TXT
1328 WinFast TV - PAL I/DK
1329 WinFast TV - PAL N
132a WinFast TV Audio - PHP SECAM LL
132b WinFast TV Audio - PHP SECAM LL+TXT
132c WinFast TV Audio - PHP SECAM DK
132d WinFast TV - SECAM DK + TXT
132e WinFast TV - NTSC Japan
6023 EMP Audio Device
6024 WinFast PalmTop/Novo TV Video
6025 WinFast DTV Dongle (cold state)
6026 WinFast DTV Dongle (warm state)
6029 WinFast DTV Dongle Gold
6125 WinFast DTV Dongle
6126 WinFast DTV Dongle BDA Driver
6a03 RTL2832 [WinFast DTV Dongle Mini]
6f00 WinFast DTV Dongle (STK7700P based)
0414 Giga-Byte Technology Co., Ltd
0416 Winbond Electronics Corp.
0035 W89C35 802.11bg WLAN Adapter
0101 Hub
0961 AVL Flash Card Reader
3810 Smart Card Controller
3811 Generic Controller - Single interface
3812 Smart Card Controller_2Interface
3813 Panel Display
5011 Virtual Com Port
511b Nuvoton Nu-Link1 ICE
511c Nuvoton Nu-Link1 ICE
511d Nuvoton Nu-Link1 ICE/VCOM
511e Nuvoton Nu-Link1 MSC/VCOM
5200 Nuvoton Nu-Link2-ME ICE/MSC/VCOM
5201 Nuvoton Nu-Link2-Pro ICE/MSC/VCOM
5210 Nuvoton Nu-Link2 MSC FW UPGRADE
5211 Nuvoton Nu-Link2 HID FW UPGRADE
5518 4-Port Hub
551a PC Sync Keypad
551b PC Async Keypad
551c Sync Tenkey
551d Async Tenkey
551e Keyboard
551f Keyboard w/ Sys and Media
5521 Keyboard
6481 16-bit Scanner
7721 Memory Stick Reader/Writer
7722 Memory Stick Reader/Writer
7723 SD Card Reader
b23c Gaming Keyboard
c141 Barcode Scanner
0417 Symbios Logic
0418 AST Research
0419 Samsung Info. Systems America, Inc.
0001 IrDA Remote Controller / Creative Cordless Mouse
0600 Desktop Wireless 6000
2694 Laila
3001 Xerox P1202 Laser Printer
3003 Olivetti PG L12L
3201 Docuprint P8ex
3404 SCX-5x12 series
3406 MFP 830 series
3407 ML-912
3601 InkJet Color Printer
3602 InkJet Color Printer
4602 Remote NDIS Network Device
8001 Hub
8002 SyncMaster HID Monitor Control
aa03 SDAS-3 MP3 Player
041a Phoenix Technologies, Ltd
041b d'TV
041d S3, Inc.
041e Creative Technology, Ltd
0414 HS-720 Headset
1002 Nomad II
1003 Blaster GamePad Cobra
1050 GamePad Cobra
1053 Mouse Gamer HD7600L
200c MuVo V100
2020 Zen X-Fi 2
2029 ZiiO
2801 Prodikeys PC-MIDI multifunction keyboard
3000 SoundBlaster Extigy
3002 SB External Composite Device
3010 SoundBlaster MP3+
3014 SB External Composite Device
3015 Sound Blaster Digital Music LX
3020 SoundBlaster Audigy 2 NX
3030 SB External Composite Device
3040 SoundBlaster Live! 24-bit External SB0490
3042 Sound Blaster X-Fi Surround 5.1
3060 Sound Blaster Audigy 2 ZS External
3061 SoundBlaster Audigy 2 ZS Video Editor
3090 Sound Blaster Digital Music SX
30d0 Xmod
30d3 Sound Blaster Play!
3100 IR Receiver (SB0540)
3121 WoW tap chat
3220 Sound Blaster Tactic(3D) Sigma sound card
3232 Sound Blaster Premium HD [SBX]
3237 SB X-Fi Surround 5.1 Pro
3241 Sound Blaster JAM
3263 SB X-Fi Surround 5.1 Pro
3f00 E-Mu Xboard 25 MIDI Controller
3f02 E-Mu 0202
3f04 E-Mu 0404
3f07 E-Mu Xmidi 1x1
3f0a E-Mu Tracker Pre
3f0e Xmidi 1x1 Tab
4003 VideoBlaster Webcam Go Plus [W9967CF]
4004 Nomad II MG
4005 Webcam Blaster Go ES
4007 Go Mini
400a PC-Cam 300
400b PC-Cam 600
400c Webcam 5 [pwc]
400d Webcam PD1001
400f PC-CAM 550 (Composite)
4011 Webcam PRO eX
4012 PC-CAM350
4013 PC-Cam 750
4015 CardCam Value
4016 CardCam
4017 Webcam Mobile [PD1090]
4018 Webcam Vista [PD1100]
4019 Audio Device
401a Webcam Vista [PD1100]
401c Webcam NX [PD1110]
401d Webcam NX Ultra
401e Webcam NX Pro
401f Webcam Notebook [PD1171]
4020 Webcam NX
4021 Webcam NX Ultra
4022 Webcam NX Pro
4028 Vista Plus cam [VF0090]
4029 Webcam Live!
402f DC-CAM 3000Z
4034 Webcam Instant
4035 Webcam Instant
4036 Webcam Live!/Live! Pro
4037 Webcam Live!
4038 ORITE CCD Webcam [PC370R]
4039 Webcam Live! Effects
403a Webcam NX Pro 2
403b Creative Webcam Vista [VF0010]
403c Webcam Live! Ultra
403d Webcam Notebook Ultra
403e Webcam Vista Plus
4041 Webcam Live! Motion
4043 Vibra Plus Webcam
4045 Live! Cam Voice
4049 Live! Cam Voice
4051 Live! Cam Notebook Pro [VF0250]
4052 Live! Cam Vista IM
4053 Live! Cam Video IM
4054 Live! Cam Video IM
4055 Live! Cam Video IM Pro
4056 Live! Cam Video IM Pro
4057 Live! Cam Optia
4058 Live! Cam Optia AF
405f WebCam Vista (VF0330)
4061 Live! Cam Notebook Pro [VF0400]
4063 Live! Cam Video IM Pro
4068 Live! Cam Notebook [VF0470]
406c Live! Cam Sync [VF0520]
4083 Live! Cam Socialize [VF0640]
4087 Live! Cam Socialize HD 1080 [VF0680]
4088 Live! Cam Chat HD [VF0700]
4095 Live! Cam Sync HD [VF0770]
4097 Live! Cam Chat HD [VF0700/VF0790]
4099 Creative VF0800 [RealSense Camera SR300]
40a3 Live! Cam V3 2K [VF-0900]
4100 Nomad Jukebox 2
4101 Nomad Jukebox 3
4102 NOMAD MuVo^2
4106 Nomad MuVo
4107 NOMAD MuVo
4108 Nomad Jukebox Zen
4109 Nomad Jukebox Zen NX
410b Nomad Jukebox Zen USB 2.0
410c Nomad MuVo NX
410f NOMAD MuVo^2 (Flash)
4110 Nomad Jukebox Zen Xtra
4111 Dell Digital Jukebox
4116 MuVo^2
4117 Nomad MuVo TX
411b Zen Touch
411c Nomad MuVo USB 2.0
411d Zen
411e Zen Micro
4120 Nomad MuVo TX FM
4123 Zen Portable Media Center
4124 MuVo^2 FM (uHDD)
4126 Dell DJ (2nd gen)
4127 Dell DJ
4128 NOMAD Jukebox Zen Xtra (mtp)
412b MuVo N200 with FM radio
412f Dell Digital Jukebox 2.Gen
4130 Zen Micro (mtp)
4131 DAP-HD0014 [Zen Touch] (MTP)
4133 Mass Storage Device
4134 Zen Neeon
4136 Zen Sleek
4137 Zen Sleek (mtp)
4139 Zen Nano Plus
413c Zen MicroPhoto
4150 Zen V (MTP)
4151 Zen Vision:M (mtp)
4152 Zen V Plus
4153 Zen Vision W
4154 Zen Stone
4155 Zen Stone plus
4157 Zen (MTP)
500f Broadband Blaster 8012U-V
5015 TECOM Bluetooth Device
ffff Webcam Live! Ultra
041f LCS Telegraphics
0420 Chips and Technologies
1307 Celly SIM Card Reader
0421 Nokia Mobile Phones
0001 E61i (PC Suite mode)
0018 6288 GSM Smartphone
0019 6288 GSM Smartphone (imaging mode)
001a 6288 GSM Smartphone (file transfer mode)
0024 5610 XpressMusic (Storage mode)
0025 5610 XpressMusic (PC Suite mode)
0028 5610 XpressMusic (Imaging mode)
002d 6120 Phone (Mass storage mode)
002e 6120 Phone (Media-Player mode)
002f 6120 Phone (PC-Suite mode)
0042 E51 (PC Suite mode)
0064 3109c GSM Phone
006b 5310 Xpress Music (PC Suite mode)
006c 5310 Xpress music (Storage mode)
006d N95 (Storage mode)
006e N95 (Multimedia mode)
006f N95 (Printing mode)
0070 N95 (PC Suite mode)
0096 N810 Internet Tablet
00aa E71 (Mass storage mode)
00ab E71 (PC Suite mode)
00e4 E71 (Media transfer mode)
0103 ADL Flashing Engine AVALON Parent
0104 ADL Re-Flashing Engine Parent
0105 Nokia Firmware Upgrade Mode
0106 ROM Parent
010d E75 (Storage Mode)
010e E75 (PC Suite mode)
010f E75 (Media transfer mode)
0110 E75 (Imaging Mode)
0154 5800 XpressMusic (PC Suite mode)
0155 5800 XpressMusic (Multimedia mode)
0156 5800 XpressMusic (Storage mode)
0157 5800 XpressMusic (Imaging mode)
0189 N810 Internet Tablet WiMAX
0199 6700 Classic (msc)
019a 6700 Classic (PC Suite)
019b 6700 Classic (mtp)
01b0 6303 classic Phone (PC Suite mode)
01b1 6303 classic Phone (Mass storage mode)
01b2 6303 classic Phone (Printing and media mode)
01c7 N900 (Storage Mode)
01c8 N900/N950 (PC-Suite Mode)
0228 5530 XpressMusic
023a 6730 Classic
026a N97 (mass storage)
026b N97 (Multimedia)
026c N97 (PC Suite)
026d N97 (Pictures)
0295 660i/6600i Slide Phone (Mass Storage)
0297 660i/6600i Slide Phone (Still Image)
02e1 5230 (Storage mode)
02e2 5230 (Multimedia mode)
02e3 5230 (PC-Suite mode)
02e4 5230 (Imaging mode)
0360 C1-01 Ovi Suite Mode
0396 C7-00 (Modem mode)
03a4 C5 (Storage mode)
03c0 C7-00 (Mass storage mode)
03c1 C7-00 (Media transfer mode)
03c2 Sim
03cd C7-00 (Nokia Suite mode)
03d1 N950 (Storage Mode)
03d2 N950 (PC Suite mode)
0400 7600 Phone Parent
0401 6650 GSM Phone
0402 6255 Phone Parent
0404 5510
0405 9500 GSM Communicator
0407 Music Player HDR-1(tm)
040b N-Gage GSM Phone
040d 6620 Phone Parent
040e 6651 Phone Parent
040f 6230 GSM Phone
0410 6630 Imaging Smartphone
0411 7610 Phone Parent
0413 6260 Phone Parent
0414 7370
0415 9300 GSM Smartphone
0416 6170 Phone Parent
0417 7270 Phone Parent
0418 E70 (PC Suite mode)
0419 E60 (PC Suite mode)
041a 9500 GSM Communicator (RNDIS)
041b 9300 GSM Smartphone (RNDIS)
041c 7710 Phone Parent
041d 6670 Phone Parent
041e 6680
041f 6235 Phone Parent
0421 3230 Phone Parent
0422 6681 Phone Parent
0423 6682 Phone Parent
0428 6230i Modem
0429 6230i MultiMedia Card
0431 770/N800 Internet Tablet
0432 N90 Phone Parent
0435 E70 (IP Passthrough/RNDIS mode)
0436 E60 (IP Passthrough/RNDIS mode)
0437 6265 Phone Parent
043a N70 USB Phone Parent
043b 3155 Phone Parent
043c 6155 Phone Parent
043d 6270 Phone Parent
0443 N70 Phone Parent
0444 N91
044c NM850iG Phone Parent
044d E61 (PC Suite mode)
044e E61 (Data Exchange mode)
044f E61 (IP Passthrough/RNDIS mode)
0453 9300 Phone Parent
0456 6111 Phone Parent
0457 6111 Phone (Printing mode)
045a 6280 Phone Parent
045d 6282 Phone Parent
046e 6110 Navigator
0471 6110 Navigator
0485 MTP Device
04b9 5300
04bc 5200 (Nokia mode)
04bd 5200 (Storage mode)
04be 5200 (MTP mode)
04c3 N800 Internet Tablet
04ce E90 Communicator (PC Suite mode)
04cf E90 Communicator (Storage mode)
04f0 Nokia N95 (PC Suite mode)
04f9 6300 (PC Suite mode)
0508 E65 (PC Suite mode)
0509 E65 (Storage mode)
0518 N9 (Storage mode)
0519 N9 (RNDIS/Ethernet mode)
051a N9 (PC Suite mode)
054d C2-01
0600 Digital Pen SU-1B
0610 CS-15 (Internet Stick 3G modem)
0661 Lumia 620/920
0662 301 Dual SIM (Mass Storage)
0663 301 Dual SIM
069a 130 [RM-1035] (Charging only)
06fc Lumia 640 Phone
0720 X (RM-980)
0800 Connectivity Cable DKU-5
0801 Data Cable DKU-6
0802 CA-42 Phone Parent
0422 ADI Systems, Inc.
0423 Computer Access Technology Corp.
000a NetMate Ethernet
000c NetMate2 Ethernet
000d USB Chief Analyzer
0100 Generic Universal Protocol Analyzer
0101 UPA USBTracer
0200 Generic 10K Universal Protocol Analyzer
020a PETracer ML
0300 Generic Universal Protocol Analyzer
0301 2500H Tracer Trainer
030a PETracer x1
1237 Andromeda Hub
0424 Microchip Technology, Inc. (formerly SMSC)
0001 Integrated Hub
0007 ULPI Transciever [USB3320]
0140 LPC47M14x hub
0acd Sitecom Internal Multi Memory reader/writer MD-005
0fdc Floppy
10cd Sitecom Internal Multi Memory reader/writer MD-005
2020 USB Hub
20cd Sitecom Internal Multi Memory reader/writer MD-005
20fc 6-in-1 Card Reader
2134 Hub
2228 9-in-2 Card Reader
223a 8-in-1 Card Reader
2412 Hub
2503 USB 2.0 Hub
2504 Hub
2507 hub
2512 USB 2.0 Hub
2513 2.0 Hub
2514 USB 2.0 Hub
2517 Hub
2524 USB MultiSwitch Hub
2602 USB 2.0 Hub
2640 USB 2.0 Hub
2660 Hub
2744 Hub
274d HTC Hub Controller
2807 Hub
3fc7 RME Babyface audio system
3fcc RME MADIface
4041 Hub and media card controller
4060 Ultra Fast Media Reader
4063 xD/SD/MS/MMC Reader
4064 Ultra Fast Media Reader
4712 USB4712 high-speed hub
4713 USB4715 high-speed hub (2 ports disabled)
4714 USB4715 high-speed hub (1 port disabled)
4715 USB4715 high-speed hub
4910 USB491x hub integrated functions (primary)
4912 USB4912 high-speed hub (1 port disabled)
4914 USB4914 high-speed hub
4916 USB4916 high-speed hub
4920 USB491x hub integrated functions (secondary)
4925 USB4925 high-speed hub (primary upstream)
4927 USB4927 high-speed hub (primary upstream)
4931 USB4925/4927 high-speed hub (secondary upstream)
4940 USB47xx/49xx hub integrated WinUSB
4942 USB47xx/49xx hub integrated I2S audio port
4943 USB47xx/49xx hub integrated I2S audio + HID port
4944 USB47xx/49xx hub integrated serial port
4946 USB47xx/49xx hub integrated serial + I2S audio port
4947 USB47xx/49xx hub integrated serial + I2S audio + HID port
494a USB47xx/49xx hub integrated WinUSB + I2S audio port
494b USB47xx/49xx hub integrated WinUSB + I2S audio + HID port
494c USB47xx/49xx hub integrated WinUSB + serial port
494e USB47xx/49xx hub integrated WinUSB + serial + I2S audio port
494f USB47xx/49xx hub integrated WinUSB + serial + I2S audio + HID port
5434 Hub
5534 Hub
5744 Hub
5807 Hub
7500 LAN7500 Ethernet 10/100/1000 Adapter
9500 LAN9500/LAN9500i
9512 SMC9512/9514 USB Hub
9514 SMC9514 Hub
9904 LAN9512/LAN9514 Ethernet 10/100 Adapter (SAL10)
9e00 LAN9500A/LAN9500Ai
a700 2 Port Hub
ec00 SMSC9512/9514 Fast Ethernet Adapter
0425 Motorola Semiconductors HK, Ltd
0101 G-Tech Wireless Mouse & Keyboard
f102 G-Tech U+P Wireless Mouse
0426 Integrated Device Technology, Inc.
0426 WDM Driver
0427 Motorola Electronics Taiwan, Ltd
0428 Advanced Gravis Computer Tech, Ltd
4001 GamePad Pro
0429 Cirrus Logic
042a Ericsson Austrian, AG
042b Intel Corp.
9316 8x931Hx Customer Hub
042c Innovative Semiconductors, Inc.
042d Micronics
042e Acer, Inc.
0380 MP3 Player
042f Molex, Inc.
0430 Fujitsu Component Limited
0002 109 Keyboard
0005 Type 6 Keyboard
000a 109 Japanese Keyboard
000b 109 Japanese Keyboard
0082 109 Japanese Keyboard
0083 109 Japanese Keyboard
00a2 Type 7 Keyboard
0100 3-button Mouse
0406 KVM Switch
0502 Panasonic CF-19 HID Touch Panel
100e 24.1" LCD Monitor v4 / FID-638 Mouse
36ba Bus Powered Hub
a101 remote key/mouse for P3 chip
a102 remote key/mouse/storage for P3 chip
a103 remote storage for P3 chip
a111 remote keyboard for P4 chip
a112 remote mouse for P4 chip
a113 remote storage for P4 chip
a4a2 Ethernet (RNDIS and CDC ethernet)
cdab Raritan KVM dongle
0431 Itac Systems, Inc.
0100 Mouse-Trak 3-button Track Ball
0432 Unisys Corp.
0031 Document Processor
0433 Alps Electric, Inc.
1101 IBM Game Controller
abab Keyboard
0434 Samsung Info. Systems America, Inc.
0435 Hyundai Electronics America
0436 Taugagreining HF
0005 CameraMate (DPCM_USB)
0437 Framatome Connectors USA
0438 Advanced Micro Devices, Inc.
7900 Root Hub
0439 Voice Technologies Group
043d Lexmark International, Inc.
0001 Laser Printer
0002 Optra E310 Printer
0003 Laser Printer
0004 Laser Printer
0005 Laser Printer
0006 Laser Printer
0007 Laser Printer
0008 Inkjet Color Printer
0009 Optra S2450 Printer
000a Laser Printer
000b Inkjet Color Printer
000c Optra E312 Printer
000d Laser Printer
000e Laser Printer
000f Laser Printer
0010 Laser Printer
0011 Laser Printer
0012 Inkjet Color Printer
0013 Inkjet Color Printer
0014 InkJet Color Printer
0015 InkJet Color Printer
0016 Z12 Color Jetprinter
0017 Z32 printer
0018 Z52 Printer
0019 Forms Printer
001a Z65 Printer
001b InkJet Photo Printer
001c Kodak Personal Picture Maker 200 Printer
001d InkJet Color Printer
001e InkJet Photo Printer
001f Kodak Personal Picture Maker 200 Card Reader
0020 Z51 Printer
0021 Z33 Printer
0022 InkJet Color Printer
0023 Laser Printer
0024 Laser Printer
0025 InkJet Color Printer
0026 InkJet Color Printer
0027 InkJet Color Printer
0028 InkJet Color Printer
0029 Scan Print Copy
002a Scan Print Copy
002b Scan Print Copy
002c Scan Print Copy
002d X70/X73 Scan/Print/Copy
002e Scan Print Copy
002f Scan Print Copy
0030 Scan Print Copy
0031 Scan Print Copy
0032 Scan Print Copy
0033 Scan Print Copy
0034 Scan Print Copy
0035 Scan Print Copy
0036 Scan Print Copy
0037 Scan Print Copy
0038 Scan Print Copy
0039 Scan Print Copy
003a Scan Print Copy
003b Scan Print Copy
003c Scan Print Copy
003d X83 Scan/Print/Copy
003e Scan Print Copy
003f Scan Print Copy
0040 Scan Print Copy
0041 Scan Print Copy
0042 Scan Print Copy
0043 Scan Print Copy
0044 Scan Print Copy
0045 Scan Print Copy
0046 Scan Print Copy
0047 Scan Print Copy
0048 Scan Print Copy
0049 Scan Print Copy
004a Scan Print Copy
004b Scan Print Copy
004c Scan Print Copy
004d Laser Printer
004e Laser Printer
004f InkJet Color Printer
0050 InkJet Color Printer
0051 Laser Printer
0052 Laser Printer
0053 InkJet Color Printer
0054 InkJet Color Printer
0057 Z35 Printer
0058 Laser Printer
005a X63
005c InkJet Color Printer
0060 X74/X75 Scanner
0061 X74 Hub
0065 X5130
0069 X74/X75 Printer
006d X125
006e C510
0072 X6170 Printer
0073 InkJet Color Printer
0078 InkJet Color Printer
0079 InkJet Color Printer
007a Generic Hub
007b InkJet Color Printer
007c X1110/X1130/X1140/X1150/X1170/X1180/X1185
007d Photo 3150
008a 4200 series
008b InkJet Color Printer
008c to CF/SM/SD/MS Card Reader
008e InkJet Color Printer
008f X422
0091 Laser Printer E232
0093 X5250
0095 E220 Printer
0096 2200 series
0097 P6250
0098 7100 series
009e P910 series Human Interface Device
009f InkJet Color Printer
00a9 IBM Infoprint 1410 MFP
00ab InkJet Color Printer
00b2 3300 series
00b8 7300 series
00b9 8300 series
00ba InkJet Color Printer
00bb 2300 series
00bd Printing Support
00be Printing Support
00bf Printing Support
00c0 6300 series
00c1 4300 series
00c7 Printing Support
00c8 Printing Support
00c9 Printing Support
00cb Printing Support
00cc E120(n)
00d0 9300 series
00d3 X340 Scanner
00d4 X342n Scanner
00d5 Printing Support
00d6 X340 Scanner
00e8 X642e
00e9 2400 series
00f6 3400 series
00f7 InkJet Color Printer
00ff InkJet Color Printer
010b 2500 series
010d 3500-4500 series
010f 6500 series
0142 X3650 (Printer, Scanner, Copier)
01bd S800 Series Scanner
01fa S310 series
020e RICOH Aficio SP 4410SF
4303 Xerox WorkCentre Pro 412
043e LG Electronics USA, Inc.
3001 AN-WF100 802.11abgn Wireless Adapter [Broadcom BCM4323]
3004 TWFM-B003D 802.11abgn Wireless Module [Broadcom BCM43236B]
3009 VC400
3101 AN-WF500 802.11abgn + BT Wireless Adapter [Broadcom BCM43242]
42bd Flatron 795FT Plus Monitor
4a4d Flatron 915FT Plus Monitor
7001 MF-PD100 Soul Digital MP3 Player
7013 MP3 Player
70d7 Mouse Scanner LSM-150 [LG Smart Scan Mouse]
70f5 External HDD
8484 LPC-U30 Webcam II
8585 LPC-UC35 Webcam
8888 Electronics VCS Camera II(LPC-U20)
9800 Remote Control Receiver_iMON
9803 eHome Infrared Receiver
9804 DMB Receiver Control
9a10 34UC88-B
9a11 34UC88-B
9a39 27UP850 - WK.AEUDCSN - External Monitor 4K
9a57 UltraGear Monitor
9c01 LGE Sync
043f RadiSys Corp.
0440 Eizo Nanao Corp.
0441 Winbond Systems Lab.
1456 Hub
0442 Ericsson, Inc.
abba Bluetooth Device
0443 Gateway, Inc.
000e Multimedia Keyboard
002e Millennium Keyboard
0445 Lucent Technologies, Inc.
0446 NMB Technologies Corp.
6781 Keyboard with PS/2 Mouse Port
6782 Keyboard
0447 Momentum Microsystems
0449 Duta Multi Robotik
0128 Menengah
0210 Dasar
0612 Lanjutan
044a Shamrock Tech. Co., Ltd
044b WSI
044c CCL/ITRI
044d Siemens Nixdorf AG
044e Alps Electric Co., Ltd
1104 Japanese Keyboard
1218 Electric Touchpad
2002 MD-5500 Printer
2014 Bluetooth Device
3001 UGTZ4 Bluetooth
3002 Bluetooth Device
3003 Bluetooth Device
3004 Bluetooth Adapter
3005 Integrated Bluetooth Device
3006 Bluetooth Adapter
3007 Bluetooth Controller (ALPS/UGX)
300c Bluetooth Controller (ALPS/UGPZ6)
300d Bluetooth Controller (ALPS/UGPZ6)
3010 Bluetooth Adapter
3017 BCM2046 Bluetooth Device
ffff Compaq Bluetooth Multiport Module
044f ThrustMaster, Inc.
0400 HOTAS Cougar
0402 HOTAS Warthog Joystick
0404 HOTAS Warthog Throttle
044f GP XID
0f00 Steering Wheel for Xbox
0f03 Steering Wheel for Xbox
0f07 Controller for Xbox
0f0c Xbox Memory Unit (8MB)
0f10 Modena GT Wheel
a003 Rage 3D Game Pad
a01b PK-GP301 Driving Wheel
a0a0 Top Gun Joystick
a0a1 Top Gun Joystick (rev2)
a0a3 Fusion Digital GamePad
a201 PK-GP201 PlayStick
b108 T-Flight Hotas X Flight Stick
b10a T.16000M Joystick
b203 360 Modena Pro Wheel
b300 Firestorm Dual Power
b303 FireStorm Dual Analog 2
b304 Firestorm Dual Power
b307 vibrating Upad
b30b Wireless VibrationPad
b315 Firestorm Dual Analog 3
b320 Dual Trigger gamepad PC/PS2 2.0
b323 Dual Trigger 3-in-1 (PC Mode)
b324 Dual Trigger 3-in-1 (PS3 Mode)
b326 Gamepad GP XID
b351 F16 MFD 1
b352 F16 MFD 2
b365 UbiSoft UbiConnect
b603 force feedback Wheel
b605 force feedback Racing Wheel
b651 Ferrari GT Rumble Force Wheel
b653 RGT Force Feedback Clutch Racing Wheel
b654 Ferrari GT Force Feedback Wheel
b677 T150 Racing Wheel
b678 T.Flight Rudder Pedals
b679 T-Rudder
b687 TWCS Throttle
b700 Tacticalboard
0450 DFI, Inc.
0451 Texas Instruments, Inc.
0422 TUSB422 Port Controller with Power Delivery
1234 Bluetooth Device
1428 Hub
1446 TUSB2040/2070 Hub
16a2 CC Debugger
16a6 BM-USBD1 BlueRobin RF heart rate sensor receiver
16a8 CC2531 ZigBee
16ae CC2531 Dongle
2036 TUSB2036 Hub
2046 TUSB2046 Hub
2077 TUSB2077 Hub
2f90 SM-USB-DIG
3200 TUSB3200 Boot Loader
3410 TUSB3410 Microcontroller
3f00 OMAP1610
3f02 SMC WSKP100 Wi-Fi Phone
505f TUSB5052 Serial
5153 TUSB5052 Hub
5409 Frontier Labs NEX IA+ Digital Audio Player
6000 AU5 ADSL Modem (pre-reenum)
6001 AU5 ADSL Modem
6060 RNDIS/BeWAN ADSL2+
6070 RNDIS/BeWAN ADSL2+
625f TUSB6250 ATA Bridge
8041 Hub
8042 Hub
8043 Hub
8140 TUSB8041 4-Port Hub
8142 TUSB8041 4-Port Hub
9261 TUSB9261 SerialATA-Bridge
926b TUSB9260 Boot Loader
bef3 CC1352R1 Launchpad
dbc0 Device Bay Controller
e001 GraphLink [SilverLink]
e003 TI-84 Plus Calculator
e004 TI-89 Titanium Calculator
e008 TI-84 Plus Silver Calculator
e00e TI-89 Titanium Presentation Link
e00f TI-84 Plus Presentation Link
e010 TI SmartPad Keyboard
e011 Nspire CAS+ prototype
e012 TI-Nspire Calculator
e013 Network Bridge
e01c Data Collection Sled [Nspire Lab Cradle, Nspire Datatracker Cradle]
e01e Nspire CX Navigator Access Point
e01f Python Adapter (firmware install mode)
e020 Python Adapter
e022 Nspire CX II
f430 MSP-FET430UIF JTAG Tool
f432 eZ430 Development Tool
ffff Bluetooth Device
0452 Mitsubishi Electronics America, Inc.
0021 HID Monitor Controls
0050 Diamond Pro 900u CRT Monitor
0051 Integrated Hub
0100 Control Panel for Leica TCS SP5
0453 CMD Technology
6781 NMB Keyboard
6783 Chicony Composite Keyboard
0454 Vobis Microcomputer AG
0455 Telematics International, Inc.
0456 Analog Devices, Inc.
7031 FX2 SPI/I2C Interface
b672 Libiio based instrument [ADALM2000]
b673 LibIIO based AD9363 Software Defined Radio [ADALM-PLUTO]
f000 FT2232 JTAG ICE [gnICE]
f001 FT2232H Hi-Speed JTAG ICE [gnICE+]
0457 Silicon Integrated Systems Corp.
0150 Super Talent 1GB Flash Drive
0151 Super Flash 1GB / GXT 64MB Flash Drive
0162 SiS162 usb Wireless LAN Adapter
0163 SiS163U 802.11 Wireless LAN Adapter
0817 SiS-184-ASUS-4352.17 touch panel
10e1 HID Touch Controller
5401 Wireless Adapter RO80211GS-USB
0458 KYE Systems Corp. (Mouse Systems)
0001 Mouse
0002 Genius NetMouse Pro
0003 Genius NetScroll+
0006 Easy Mouse+
0007 Trackbar Emotion
000b NetMouse Wheel(P+U)
000c TACOMA Fingerprint V1.06.01
000e Genius NetScroll Optical
0013 TACOMA Fingerprint Mouse V1.06.01
001a Genius WebScroll+
002e NetScroll + Traveler / NetScroll 110
0036 Pocket Mouse LE
0039 NetScroll+ Superior
003a NetScroll+ Mini Traveler / Genius NetScroll 120
004c Slimstar Pro Keyboard
0056 Ergo 300 Mouse
0057 Enhanced Gaming Device
0059 Enhanced Laser Device
005a Enhanced Device
005b Enhanced Device
005c Enhanced Laser Gaming Device
005d Enhanced Device
0061 Bluetooth Dongle
0066 Genius Traveler 1000 Wireless Mouse
0072 Navigator 335
0083 Bluetooth Dongle
0087 Ergo 525V Laser Mouse
0088 Genius Traveler 515 Laser
0089 Genius Traveler 350
00ca Pen Mouse
0100 EasyPen Tablet
0101 CueCat
011b NetScroll T220
0186 Genius DX-120 Mouse
1001 Joystick
1002 Game Pad
1003 Genius VideoCam
1004 Flight2000 F-23 Joystick
100a Aashima Technology Trust Sight Fighter Vibration Feedback Joystick
2001 ColorPage-Vivid Pro Scanner
2004 ColorPage-HR6 V1 Scanner
2005 ColorPage-HR6/Vivid3
2007 ColorPage-HR6 V2 Scanner
2008 ColorPage-HR6 V2 Scanner
2009 ColorPage-HR6A Scanner
2011 ColorPage-Vivid3x Scanner
2012 Plustek Scanner
2013 ColorPage-HR7 Scanner
2014 ColorPage-Vivid4
2015 ColorPage-HR7LE Scanner
2016 ColorPage-HR6X Scanner
2017 ColorPage-Vivid3xe
2018 ColorPage-HR7X
2019 ColorPage-HR6X Slim
201a ColorPage-Vivid4xe
201b ColorPage-Vivid4x
201c ColorPage-HR8
201d ColorPage-Vivid 1200 X
201e ColorPage-Slim 1200
201f ColorPage-Vivid 1200 XE
2020 ColorPage-Slim 1200 USB2
2021 ColorPage-SF600
3017 SPEED WHEEL 3 Vibration
3018 Wireless 2.4Ghz Game Pad
3019 10-Button USB Joystick with Vibration
301a MaxFire G-12U Vibration
301c Genius MaxFighter F-16U
301d Genius MaxFire MiniPad
400f Genius TVGo DVB-T02Q MCE
4012 TVGo DVB-T03 [AF9015]
5003 G-pen 560 Tablet
5004 G-pen Tablet
5005 Genius EasyPen M406
5012 Genius EasyPen M406W
5014 Genius EasyPen 340
505e Genius iSlim 330
6001 GF3000F Ethernet Adapter
7004 VideoCAM Express V2
7006 Dsc 1.3 Smart Camera Device
7007 VideoCAM Web
7009 G-Shot G312 Still Camera Device
700c VideoCAM Web V3
700d G-Shot G511 Composite Device
700f VideoCAM Web
7012 WebCAM USB2.0
7014 VideoCAM Live V3
701c G-Shot G512 Still Camera
7020 Sim 321C
7025 Eye 311Q Camera
7029 Genius Look 320s (SN9C201 + HV7131R)
702c Trek 320R Camera
702f Genius Slim 322
7035 i-Look 325T Camera
7045 Genius Look 1320 V2
704c Genius i-Look 1321
704d Slim 1322AF
7055 Slim 2020AF camera
705a Asus USB2.0 Webcam
705c Genius iSlim 1300AF
7061 Genius iLook 1321 V2
7066 Acer Crystal Eye Webcam
7067 Genius iSlim 1300AF V2
7068 Genius eFace 1325R
706d Genius iSlim 2000AF V2
7076 Genius FaceCam 312
7079 FaceCam 2025R
707f TVGo DVB-T03 [RTL2832]
7088 WideCam 1050
7089 Genius FaceCam 320
708c Genius WideCam F100
0459 Adobe Systems, Inc.
045a SONICblue, Inc.
07da Supra Express 56K modem
0b4a SupraMax 2890 56K Modem [Lucent Atlas]
0b68 SupraMax 56K Modem
5001 Rio 600 MP3 Player
5002 Rio 800 MP3 Player
5003 Nike Psa/Play MP3 Player
5005 Rio S10 MP3 Player
5006 Rio S50 MP3 Player
5007 Rio S35 MP3 Player
5008 Rio 900 MP3 Player
5009 Rio S30 MP3 Player
500d Fuse MP3 Player
500e Chiba MP3 Player
500f Cali MP3 Player
5010 Rio S11 MP3 Player
501c Virgin MPF-1000
501d Rio Fuse
501e Rio Chiba
501f Rio Cali
503f Cali256 MP3 Player
5042 Rio Forge
5202 Rio Riot MP3 Player
5210 Rio Karma Music Player
5220 Rio Nitrus MP3 Player
5221 Rio Eigen
045b Hitachi, Ltd
0053 RX610 RX-Stick
0229 mSATA Adapter [renkforce Pi-102]
045d Nortel Networks, Ltd
045e Microsoft Corp.
0007 SideWinder Game Pad
0008 SideWinder Precision Pro
0009 IntelliMouse
000b Natural Keyboard Elite
000e SideWinder® Freestyle Pro
0014 Digital Sound System 80
001a SideWinder Precision Racing Wheel
001b SideWinder Force Feedback 2 Joystick
001c Internet Keyboard Pro
001d Natural Keyboard Pro
001e IntelliMouse Explorer
0023 Trackball Optical
0024 Trackball Explorer
0025 IntelliEye Mouse
0026 SideWinder GamePad Pro
0027 SideWinder PnP GamePad
0028 SideWinder Dual Strike
0029 IntelliMouse Optical
002b Internet Keyboard Pro
002d Internet Keyboard
002f Integrated Hub
0033 Sidewinder Strategic Commander
0034 SideWinder Force Feedback Wheel
0038 SideWinder Precision 2
0039 IntelliMouse Optical
003b SideWinder Game Voice
003c SideWinder Joystick
0040 Wheel Mouse Optical
0047 IntelliMouse Explorer 3.0
0048 Office Keyboard 1.0A
0053 Optical Mouse
0059 Wireless IntelliMouse Explorer
005c Office Keyboard (106/109)
005f Wireless MultiMedia Keyboard
0061 Wireless MultiMedia Keyboard (106/109)
0063 Wireless Natural MultiMedia Keyboard
0065 Wireless Natural MultiMedia Keyboard (106/109)
006a Wireless Optical Mouse (IntelliPoint)
006d eHome Remote Control Keyboard keys
006e MN-510 802.11b Wireless Adapter [Intersil ISL3873B]
006f Smart Display Reference Device
0070 Wireless MultiMedia Keyboard
0071 Wireless MultiMedia Keyboard (106/109)
0072 Wireless Natural MultiMedia Keyboard
0073 Wireless Natural MultiMedia Keyboard (106/109)
0079 IXI Ogo CT-17 handheld device
007a 10/100 USB NIC
007d Notebook Optical Mouse
007e Wireless Transceiver for Bluetooth
0080 Digital Media Pro Keyboard
0083 Basic Optical Mouse
0084 Basic Optical Mouse
008a Wireless Optical Desktop Receiver 2.0A
008b Dual Receiver Wireless Mouse (IntelliPoint)
008c Wireless Intellimouse Explorer 2.0
0095 IntelliMouse Explorer 4.0 (IntelliPoint)
009c Wireless Transceiver for Bluetooth 2.0
009d Wireless Optical Desktop 3.0
00a0 eHome Infrared Receiver
00a4 Compact Optical Mouse, model 1016
00b0 Digital Media Pro Keyboard
00b4 Digital Media Keyboard 1.0A
00b9 Wireless Optical Mouse 3.0
00bb Fingerprint Reader
00bc Fingerprint Reader
00bd Fingerprint Reader
00c2 MN-710 802.11g Wireless Adapter [Intersil ISL3886]
00c9 MTP Device
00ca Fingerprint Reader
00cb Basic Optical Mouse v2.0
00ce Generic PPC Flash device
00d1 Optical Mouse with Tilt Wheel
00d2 Notebook Optical Mouse with Tilt Wheel
00da eHome Infrared Receiver
00db Natural Ergonomic Keyboard 4000 V1.0
00dd Comfort Curve Keyboard 2000 V1.0
00e1 Wireless Laser Mouse 6000 Receiver
00f4 LifeCam VX-6000 (SN9C20x + OV9650)
00f5 LifeCam VX-3000
00f6 Comfort Optical Mouse 1000
00f7 LifeCam VX-1000
00f8 LifeCam NX-6000
00f9 Wireless Desktop Receiver 3.1
0202 Xbox Controller
0280 Xbox Memory Unit (8MB)
0283 Xbox Communicator
0284 Xbox DVD Playback Kit
0285 Xbox Controller S
0288 Xbox Controller S Hub
0289 Xbox Controller S
028b Xbox360 DVD Emulator
028d Xbox360 Memory Unit 64MB
028e Xbox360 Controller
028f Xbox360 Wireless Controller via Plug & Charge Cable
0290 Xbox360 Performance Pipe (PIX)
0291 Xbox 360 Wireless Receiver for Windows
0292 Xbox360 Wireless Networking Adapter
029c Xbox360 HD-DVD Drive
029d Xbox360 HD-DVD Drive
029e Xbox360 HD-DVD Memory Unit
02a0 Xbox360 Big Button IR
02a8 Xbox360 Wireless N Networking Adapter [Atheros AR7010+AR9280]
02ad Xbox NUI Audio
02ae Xbox NUI Camera
02b0 Xbox NUI Motor
02b6 Xbox360 Bluetooth Wireless Headset
02bb Kinect Audio
02be Kinect for Windows NUI Audio
02bf Kinect for Windows NUI Camera
02c2 Kinect for Windows NUI Motor
02d1 Xbox One Controller
02d5 Xbox One Digital TV Tuner
02dd Xbox One Controller (Firmware 2015)
02e0 Xbox One Wireless Controller
02e3 Xbox One Elite Controller
02e6 Xbox Wireless Adapter for Windows
02ea Xbox One Controller
02f3 Xbox One Chatpad
02fd Xbox One S Controller [Bluetooth]
02fe Xbox Wireless Adapter for Windows
0306 Surface Pro 7 SD Card Reader
0400 Windows Powered Pocket PC 2002
0401 Windows Powered Pocket PC 2002
0402 Windows Powered Pocket PC 2002
0403 Windows Powered Pocket PC 2002
0404 Windows Powered Pocket PC 2002
0405 Windows Powered Pocket PC 2002
0406 Windows Powered Pocket PC 2002
0407 Windows Powered Pocket PC 2002
0408 Windows Powered Pocket PC 2002
0409 Windows Powered Pocket PC 2002
040a Windows Powered Pocket PC 2002
040b Windows Powered Pocket PC 2002
040c Windows Powered Pocket PC 2002
040d Windows Powered Pocket PC 2002
040e Windows Powered Pocket PC 2002
040f Windows Powered Pocket PC 2002
0410 Windows Powered Pocket PC 2002
0411 Windows Powered Pocket PC 2002
0412 Windows Powered Pocket PC 2002
0413 Windows Powered Pocket PC 2002
0414 Windows Powered Pocket PC 2002
0415 Windows Powered Pocket PC 2002
0416 Windows Powered Pocket PC 2002
0417 Windows Powered Pocket PC 2002
0432 Windows Powered Pocket PC 2003
0433 Windows Powered Pocket PC 2003
0434 Windows Powered Pocket PC 2003
0435 Windows Powered Pocket PC 2003
0436 Windows Powered Pocket PC 2003
0437 Windows Powered Pocket PC 2003
0438 Windows Powered Pocket PC 2003
0439 Windows Powered Pocket PC 2003
043a Windows Powered Pocket PC 2003
043b Windows Powered Pocket PC 2003
043c Windows Powered Pocket PC 2003
043d Becker Traffic Assist Highspeed 7934
043e Windows Powered Pocket PC 2003
043f Windows Powered Pocket PC 2003
0440 Windows Powered Pocket PC 2003
0441 Windows Powered Pocket PC 2003
0442 Windows Powered Pocket PC 2003
0443 Windows Powered Pocket PC 2003
0444 Windows Powered Pocket PC 2003
0445 Windows Powered Pocket PC 2003
0446 Windows Powered Pocket PC 2003
0447 Windows Powered Pocket PC 2003
0448 Windows Powered Pocket PC 2003
0449 Windows Powered Pocket PC 2003
044a Windows Powered Pocket PC 2003
044b Windows Powered Pocket PC 2003
044c Windows Powered Pocket PC 2003
044d Windows Powered Pocket PC 2003
044e Windows Powered Pocket PC 2003
044f Windows Powered Pocket PC 2003
0450 Windows Powered Pocket PC 2003
0451 Windows Powered Pocket PC 2003
0452 Windows Powered Pocket PC 2003
0453 Windows Powered Pocket PC 2003
0454 Windows Powered Pocket PC 2003
0455 Windows Powered Pocket PC 2003
0456 Windows Powered Pocket PC 2003
0457 Windows Powered Pocket PC 2003
0458 Windows Powered Pocket PC 2003
0459 Windows Powered Pocket PC 2003
045a Windows Powered Pocket PC 2003
045b Windows Powered Pocket PC 2003
045c Windows Powered Pocket PC 2003
045d Windows Powered Pocket PC 2003
045e Windows Powered Pocket PC 2003
045f Windows Powered Pocket PC 2003
0460 Windows Powered Pocket PC 2003
0461 Windows Powered Pocket PC 2003
0462 Windows Powered Pocket PC 2003
0463 Windows Powered Pocket PC 2003
0464 Windows Powered Pocket PC 2003
0465 Windows Powered Pocket PC 2003
0466 Windows Powered Pocket PC 2003
0467 Windows Powered Pocket PC 2003
0468 Windows Powered Pocket PC 2003
0469 Windows Powered Pocket PC 2003
046a Windows Powered Pocket PC 2003
046b Windows Powered Pocket PC 2003
046c Windows Powered Pocket PC 2003
046d Windows Powered Pocket PC 2003
046e Windows Powered Pocket PC 2003
046f Windows Powered Pocket PC 2003
0470 Windows Powered Pocket PC 2003
0471 Windows Powered Pocket PC 2003
0472 Windows Powered Pocket PC 2003
0473 Windows Powered Pocket PC 2003
0474 Windows Powered Pocket PC 2003
0475 Windows Powered Pocket PC 2003
0476 Windows Powered Pocket PC 2003
0477 Windows Powered Pocket PC 2003
0478 Windows Powered Pocket PC 2003
0479 Windows Powered Pocket PC 2003
047a Windows Powered Pocket PC 2003
047b Windows Powered Pocket PC 2003
04c8 Windows Powered Smartphone 2002
04c9 Windows Powered Smartphone 2002
04ca Windows Powered Smartphone 2002
04cb Windows Powered Smartphone 2002
04cc Windows Powered Smartphone 2002
04cd Windows Powered Smartphone 2002
04ce Windows Powered Smartphone 2002
04d7 Windows Powered Smartphone 2003
04d8 Windows Powered Smartphone 2003
04d9 Windows Powered Smartphone 2003
04da Windows Powered Smartphone 2003
04db Windows Powered Smartphone 2003
04dc Windows Powered Smartphone 2003
04dd Windows Powered Smartphone 2003
04de Windows Powered Smartphone 2003
04df Windows Powered Smartphone 2003
04e0 Windows Powered Smartphone 2003
04e1 Windows Powered Smartphone 2003
04e2 Windows Powered Smartphone 2003
04e3 Windows Powered Smartphone 2003
04e4 Windows Powered Smartphone 2003
04e5 Windows Powered Smartphone 2003
04e6 Windows Powered Smartphone 2003
04e7 Windows Powered Smartphone 2003
04e8 Windows Powered Smartphone 2003
04e9 Windows Powered Smartphone 2003
04ea Windows Powered Smartphone 2003
04ec Windows Phone (Zune)
063e Zune HD Media Player
0640 KIN Phone
0641 KIN Phone
0642 KIN Phone
0707 Wireless Laser Mouse 8000
0708 Transceiver v 3.0 for Bluetooth
070a Charon Bluetooth Dongle (DFU)
070f LifeChat LX-3000 Headset
0710 Zune Media Player
0713 Wireless Presenter Mouse 8000
0719 Xbox 360 Wireless Adapter
071f Mouse/Keyboard 2.4GHz Transceiver V2.0
0721 LifeCam NX-3000 (UVC-compliant)
0723 LifeCam VX-7000 (UVC-compliant)
0724 SideWinder Mouse
0728 LifeCam VX-5000
0730 Digital Media Keyboard 3000
0734 Wireless Optical Desktop 700
0736 Sidewinder X5 Mouse
0737 Compact Optical Mouse 500
0745 Nano Transceiver v1.0 for Bluetooth
074a LifeCam VX-500 [1357]
0750 Wired Keyboard 600
0752 Wired Keyboard 400
075d LifeCam Cinema
0761 LifeCam VX-2000
0765 Xbox360 Slim Internal Wireless Module (1400) [Marvell 88W8786U]
0766 LifeCam VX-800
0768 Sidewinder X4
076c Comfort Mouse 4500
076d LifeCam HD-5000
0770 LifeCam VX-700
0772 LifeCam Studio
0779 LifeCam HD-3000
077f LifeChat LX-6000 Headset
0780 Comfort Curve Keyboard 3000
0797 Optical Mouse 200
0799 Surface Pro embedded keyboard
07a5 Wireless Receiver 1461C
07b2 2.4GHz Transceiver v8.0 used by mouse Wireless Desktop 900
07b6 Comfort Curve Keyboard 3000
07b9 Wired Keyboard 200
07c6 RTL8153 GigE [Surface Ethernet Adapter]
07ca Surface Pro 3 Docking Station Audio Device
07cd Surface Keyboard
07f8 Wired Keyboard 600 (model 1576)
07fd Nano Transceiver 1.1
0800 Wireless keyboard (All-in-One-Media)
0810 LifeCam HD-3000
0823 Classic IntelliMouse
082a Pro Intellimouse
0900 Surface Dock Hub
0901 Surface Dock Hub
0902 Surface Dock Hub
0903 Surface Dock Hub
0904 Surface Dock Extender
0905 Surface Dock Audio
090b Hub
090c SD Card
091a Hub
0927 RTL8153B GigE [Surface Ethernet Adapter]
0955 Hub
0957 Hub
097a Generic Superspeed Hub [Azure Kinect]
097b Generic Hub [Azure Kinect]
097c Azure Kinect Depth Camera
097d Azure Kinect 4K Camera
097e Azure Kinect Microphone Array
09a0 RTL8153B GigE [Surface Ethernet Adapter]
09c0 Surface Type Cover
0a00 Lumia 950 (RM-1104/RM-1118)
0b00 Xbox Elite Series 2 Controller (model 1797)
0b12 Xbox Controller
930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board
ffca Catalina
fff8 Keyboard
ffff Windows CE Mass Storage
0460 Ace Cad Enterprise Co., Ltd
0004 Tablet (5x3.75)
0006 LCD Tablet (12x9)
0008 Tablet (3x2.25)
0461 Primax Electronics, Ltd
0010 HP PR1101U / Primax PMX-KPR1101U Keyboard
0300 G2-300 Scanner
0301 G2E-300 Scanner
0302 G2-300 #2 Scanner
0303 G2E-300 #2 Scanner
0340 Colorado 9600 Scanner
0341 Colorado 600u Scanner
0345 Visioneer 6200 Scanner
0346 Memorex Maxx 6136u Scanner
0347 Primascan Colorado 2600u/Visioneer 4400 Scanner
0360 Colorado 19200 Scanner
0361 Colorado 1200u Scanner
0363 VistaScan Astra 3600(ENG)
0364 LG Electronics Scanworks 600U Scanner
0365 VistaScan Astra 3600(ENG)
0366 6400
0367 VistaScan Astra 3600(ENG)
0371 Visioneer Onetouch 8920 Scanner
0374 UMAX Astra 2500
0375 VistaScan Astra 3600(ENG)
0377 Medion MD 5345 Scanner
0378 VistaScan Astra 3600(ENG)
037b Medion MD 6190 Scanner
037c VistaScan Astra 3600(ENG)
0380 G2-600 Scanner
0381 ReadyScan 636i Scanner
0382 G2-600 #2 Scanner
0383 G2E-600 Scanner
038a UMAX Astra 3000/3600
038b Xerox 2400 Onetouch
038c UMAX Astra 4100
0392 Medion/Lifetec/Tevion/Cytron MD 6190
03a8 9420M
0813 IBM UltraPort Camera
0815 Micro Innovations IC200 Webcam
0819 Fujifilm IX-30 Camera [webcam mode]
081a Fujifilm IX-30 Camera [storage mode]
081c Elitegroup ECS-C11 Camera
081d Elitegroup ECS-C11 Storage
0a00 Micro Innovations Web Cam 320
4d01 Comfort Keyboard / Kensington Orbit Elite
4d02 Mouse-in-a-Box
4d03 Kensington Mouse-in-a-box
4d04 Mouse
4d06 Balless Mouse (HID)
4d0f HP Optical Mouse
4d15 Dell Optical Mouse
4d17 Optical Mouse
4d20 HP Optical Mouse
4d2a PoPo Elixir Mouse (HID)
4d2b Wireless Laser Mini Mouse (HID)
4d2c PoPo Mini Pointer Mouse (HID)
4d2e Optical Mobile Mouse (HID)
4d51 0Y357C PMX-MMOCZUL (B) [Dell Laser Mouse]
4d62 HP Laser Mobile Mini Mouse
4d64 Asus wired optical mouse - Model MOEWUO
4d75 Rocketfish RF-FLBTAD Bluetooth Adapter
4d81 Dell N889 Optical Mouse
4d8a HP Multimedia Keyboard
4d91 Laser mouse M-D16DL
4d92 Optical mouse M-D17DR
4db1 Dell Laptop Integrated Webcam 2Mpix
4de3 HP 5-Button Optical Comfort Mouse
4de7 webcam
4e04 Lenovo Keyboard KB1021
4e22 Dell Mouse, 2 Buttons, Modell: MS111-P
4e26 Asus wired keyboard - model KB73211
4e6f Acer Wired Keyboard Model KBAY211
4e72 Acer Wired Keyboard Model KBAY211
0463 MGE UPS Systems
0001 UPS
ffff UPS
0464 AMP/Tycoelectronics Corp.
0467 AT&T Paradyne
0468 Wieson Technologies Co., Ltd
046a CHERRY
0001 Keyboard
0003 My3000 Hub
0004 CyBoard Keyboard
0005 XX33 SmartCard Reader Keyboard
0008 Wireless Keyboard and Mouse
0010 SmartBoard XX44
0011 G83 (RS 6000) Keyboard
0021 CyMotion Expert Combo
0023 Keyboard
0027 CyMotion Master Solar Keyboard
002a Wireless Mouse & Keyboard
002d SmartTerminal XX44
003c Raptor Gaming Keyboard
003d Raptor Gaming Keyboard Integrated Hub
003e SmartTerminal ST-2xxx
0041 G86 6240 Keyboard
0076 MX-Board 3.0 G80-3850
0077 MX BOARD 3.0S FL NBL Keyboard
0079 MX BOARD 3.0S FL RGB Keyboard
0080 eHealth Terminal ST 1503
0081 eHealth Keyboard G87 1504
0083 MX BOARD 3.0S FL RGB (KOREAN) Keyboard
0084 eHealth Terminal ST1506
0085 eHealth PIN-Pad PP1516
00a1 SmartCard Reader Keyboard KC 1000 SC
00ab MX 1.0 FL BL Keyboard
00ac MX BOARD 1.0 TKL RGB Keyboard
00b7 MX BOARD 8.0 TKL RGB Keyboard
00bb MX BOARD 10.0 FL RGB Keyboard
00c3 G80 3000 TKL NBL Keyboard
00c4 MX BOARD 2.0S FL RGB Keyboard
00c5 G80 3000 TKL RGB Keyboard
00c7 MV BOARD 3.0 FL RGB
00c9 CCF MX 8.0 TKL BL Keyboard
00ca CCF MX 1.0 TKL BL Keyboard
00cb CCF MX 1.0 TKL NBL Keyboard
00cd G80 3000 TKL NBL (KOREAN) Keyboard
00ce MX BOARD 2.0S FL NBL Keyboard
00d2 MX 1.0 FL NBL Keyboard
00d3 MX 1.0 FL RGB Keyboard
00dd G80-3000N RGB TKL Keyboard
00de G80-3000N FL RGB Keyboard
00df MX BOARD 10.0N FL RGB Keyboard
0106 R-300 Wireless Mouse Receiver
010d MX-Board 3.0 Keyboard
0113 KC 6000 Slim Keyboard
0180 Strait 3.0
01a4 MC 2.1 Mouse
01a6 MX BOARD 2.0S FL RGB DE Keyboard
0201 Smart Board 1150
0202 Smart Terminal 1150
b090 Keyboard
b091 Mouse
c099 Stream Keyboard TKL
c110 KC 4500 Ergo Keyboard
046b American Megatrends, Inc.
0001 Keyboard
0101 PS/2 Keyboard, Mouse & Joystick Ports
0301 USB 1.0 Hub
0500 Serial & Parallel Ports
ff10 Virtual Keyboard and Mouse
ff20 Virtual CDROM
046c Toshiba Corp., Digital Media Equipment
046d Logitech, Inc.
0082 Acer Aspire 5672 Webcam
0200 WingMan Extreme Joystick
0203 M2452 Keyboard
0242 Chillstream for Xbox 360
0301 M4848 Mouse
0401 HP PageScan
0402 NEC PageScan
040f Logitech/Storm PageScan
0430 Mic (Cordless)
0801 QuickCam Home
0802 Webcam C200
0804 Webcam C250
0805 Webcam C300
0807 Webcam B500
0808 Webcam C600
0809 Webcam Pro 9000
080a Portable Webcam C905
080f Webcam C120
0810 QuickCam Pro
0819 Webcam C210
081a Webcam C260
081b Webcam C310
081d HD Webcam C510
0820 QuickCam VC
0821 HD Webcam C910
0823 HD Webcam B910
0825 Webcam C270
0826 HD Webcam C525
0828 HD Webcam B990
082b Webcam C170
082c HD Webcam C615
082d HD Pro Webcam C920
0830 QuickClip
0836 B525 HD Webcam
0837 BCC950 ConferenceCam
0838 BCC950 ConferenceCam audio
0839 BCC950 ConferenceCam integated hub
0840 QuickCam Express
0843 Webcam C930e
0845 ConferenceCam CC3000e Camera
0846 ConferenceCam CC3000e Speakerphone
084b ConferenceCam Connect Video
084c ConferenceCam Connect Audio
084e ConferenceCam Connect
0850 QuickCam Web
0857 Logi Group Speakerphone
085c C922 Pro Stream Webcam
085e BRIO Ultra HD Webcam
086b BRIO 4K Stream Edition
0870 QuickCam Express
0882 Logi Group Speakerphone
0890 QuickCam Traveler
0892 C920 HD Pro Webcam
0893 StreamCam
0894 CrystalCam
0895 QuickCam for Dell Notebooks
0896 OrbiCam
0897 QuickCam for Dell Notebooks
0899 QuickCam for Dell Notebooks
089d QuickCam E2500 series
08a0 QuickCam IM
08a1 QuickCam IM with sound
08a2 Labtec Webcam Pro
08a3 QuickCam QuickCam Chat
08a6 QuickCam IM
08a7 QuickCam Image
08a9 Notebook Deluxe
08aa Labtec Notebooks
08ac QuickCam Cool
08ad QuickCam Communicate STX
08ae QuickCam for Notebooks
08af QuickCam Easy/Cool
08b0 QuickCam 3000 Pro [pwc]
08b1 QuickCam Notebook Pro
08b2 QuickCam Pro 4000
08b3 QuickCam Zoom
08b4 QuickCam Zoom
08b5 QuickCam Sphere
08b9 QuickCam IM
08bd Microphone (Pro 4000)
08c0 QuickCam Pro 3000
08c1 QuickCam Fusion
08c2 QuickCam PTZ
08c3 Camera (Notebooks Pro)
08c5 QuickCam Pro 5000
08c6 QuickCam for DELL Notebooks
08c7 QuickCam OEM Cisco VT Camera II
08c9 QuickCam Ultra Vision
08ca Mic (Fusion)
08cb Mic (Notebooks Pro)
08cc Mic (PTZ)
08ce QuickCam Pro 5000
08cf QuickCam UpdateMe
08d0 QuickCam Express
08d7 QuickCam Communicate STX
08d8 QuickCam for Notebook Deluxe
08d9 QuickCam IM/Connect
08da QuickCam Messenger
08dd QuickCam for Notebooks
08e0 QuickCam Express
08e1 Labtec Webcam
08e4 C505e HD Webcam
08e5 C920 PRO HD Webcam
08f0 QuickCam Messenger
08f1 QuickCam Express
08f2 Microphone (Messenger)
08f3 QuickCam Express
08f4 Labtec Webcam
08f5 QuickCam Messenger Communicate
08f6 QuickCam Messenger Plus
0900 ClickSmart 310
0901 ClickSmart 510
0903 ClickSmart 820
0905 ClickSmart 820
0910 QuickCam Cordless
0920 QuickCam Express
0921 Labtec Webcam
0922 QuickCam Live
0928 QuickCam Express
0929 Labtec Webcam Pro
092a QuickCam for Notebooks
092b Labtec Webcam Plus
092c QuickCam Chat
092d QuickCam Express / Go
092e QuickCam Chat
092f QuickCam Express Plus
0950 Pocket Camera
0960 ClickSmart 420
0970 Pocket750
0990 QuickCam Pro 9000
0991 QuickCam Pro for Notebooks
0992 QuickCam Communicate Deluxe
0994 QuickCam Orbit/Sphere AF
09a1 QuickCam Communicate MP/S5500
09a2 QuickCam Communicate Deluxe/S7500
09a4 QuickCam E 3500
09a5 Quickcam 3000 For Business
09a6 QuickCam Vision Pro
09b0 Acer OrbiCam
09b2 Fujitsu Webcam
09c0 QuickCam for Dell Notebooks Mic
09c1 QuickCam Deluxe for Notebooks
0a01 USB Headset
0a02 Premium Stereo USB Headset 350
0a03 Logitech USB Microphone
0a04 V20 portable speakers (USB powered)
0a07 Z-10 Speakers
0a0b ClearChat Pro USB
0a0c Clear Chat Comfort USB Headset
0a10 V10 Notebook Speakers
0a13 Z-5 Speakers
0a14 USB Headset
0a15 G35 Headset
0a17 G330 Headset
0a1f G930
0a23 Laptop Speaker Z305
0a29 H600 [Wireless Headset]
0a37 USB Headset H540
0a38 Headset H340
0a44 Headset H390
0a45 960 Headset
0a4d G430 Surround Sound Gaming Headset
0a4f MINI BOOM
0a5b G933 Wireless Headset Dongle
0a5d G933 Headset Battery Charger
0a66 [G533 Wireless Headset Dongle]
0a8f H390 headset with microphone
0a90 Zone Receiver
0aaa Logitech G PRO X Gaming Headset
0ac4 G535 Wireless Gaming Headset
0b02 C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
8801 Video Camera
b014 Bluetooth Mouse M336/M337/M535
b305 BT Mini-Receiver
bfe4 Premium Optical Wheel Mouse
c000 N43 [Pilot Mouse]
c001 N48/M-BB48/M-UK96A [FirstMouse Plus]
c002 M-BA47 [MouseMan Plus]
c003 MouseMan
c004 WingMan Gaming Mouse
c005 WingMan Gaming Wheel Mouse
c00b MouseMan Wheel
c00c Optical Wheel Mouse
c00d MouseMan Wheel+
c00e M-BJ58/M-BJ69 Optical Wheel Mouse
c00f MouseMan Traveler/Mobile
c011 Optical MouseMan
c012 Mouseman Dual Optical
c014 Corded Workstation Mouse
c015 Corded Workstation Mouse
c016 Optical Wheel Mouse
c018 Optical Wheel Mouse
c019 Optical Tilt Wheel Mouse
c01a M-BQ85 Optical Wheel Mouse
c01b MX310 Optical Mouse
c01c Optical Mouse
c01d MX510 Optical Mouse
c01e MX518 Optical Mouse
c024 MX300 Optical Mouse
c025 MX500 Optical Mouse
c030 iFeel Mouse
c031 iFeel Mouse+
c032 MouseMan iFeel
c033 iFeel MouseMan+
c034 MouseMan Optical
c035 Mouse
c036 Mouse
c037 Mouse
c038 Mouse
c03d M-BT96a Pilot Optical Mouse
c03e Premium Optical Wheel Mouse (M-BT58)
c03f M-BT85 [UltraX Optical Mouse]
c040 Corded Tilt-Wheel Mouse
c041 G5 Laser Mouse
c042 G3 Laser Mouse
c043 MX320/MX400 Laser Mouse
c044 LX3 Optical Mouse
c045 Optical Mouse
c046 RX1000 Laser Mouse
c047 Laser Mouse M-UAL120
c048 G9 Laser Mouse
c049 G5 Laser Mouse
c050 RX 250 Optical Mouse
c051 G3 (MX518) Optical Mouse
c053 Laser Mouse
c054 Bluetooth mini-receiver
c058 M115 Mouse
c05a M90/M100 Optical Mouse
c05b M-U0004 810-001317 [B110 Optical USB Mouse]
c05d Optical Mouse
c05f M115 Optical Mouse
c061 RX1500 Laser Mouse
c062 M-UAS144 [LS1 Laser Mouse]
c063 DELL Laser Mouse
c064 M110 corded optical mouse (M-B0001)
c066 G9x Laser Mouse
c068 G500 Laser Mouse
c069 M-U0007 [Corded Mouse M500]
c06a USB Optical Mouse
c06b G700 Wireless Gaming Mouse
c06c Optical Mouse
c077 Mouse
c07c M-R0017 [G700s Rechargeable Gaming Mouse]
c07d G502 Mouse
c07e G402 Gaming Mouse
c080 G303 Gaming Mouse
c083 G403 Prodigy Gaming Mouse
c084 G203 Gaming Mouse
c088 G Pro Wireless gaming mouse (wired mode)
c08b G502 SE HERO Gaming Mouse
c08e G MX518 Gaming Mouse (MU0053)
c092 G102/G203 LIGHTSYNC Gaming Mouse
c093 M500s Optical Mouse
c09d G102 LIGHTSYNC Gaming Mouse
c101 UltraX Media Remote
c110 Harmony 785/880/885 Remote
c111 Harmony 525 Remote
c112 Harmony 890 Remote
c11f Harmony 900/1100 Remote
c121 Harmony One Remote
c122 Harmony 650/700 Remote
c124 Harmony 300/350 Remote
c125 Harmony 200 Remote
c126 Harmony Link
c129 Harmony Hub
c12b Harmony Touch/Ultimate Remote
c201 WingMan Extreme Joystick with Throttle
c202 WingMan Formula
c207 WingMan Extreme Digital 3D
c208 WingMan Gamepad Extreme
c209 WingMan Gamepad
c20a WingMan RumblePad
c20b WingMan Action Pad
c20c WingMan Precision
c20d WingMan Attack 2
c20e WingMan Formula GP
c211 iTouch Cordless Receiver
c212 WingMan Extreme Digital 3D
c213 J-UH16 (Freedom 2.4 Cordless Joystick)
c214 ATK3 (Attack III Joystick)
c215 Extreme 3D Pro
c216 F310 Gamepad [DirectInput Mode]
c218 F510 Gamepad [DirectInput Mode]
c219 F710 Gamepad [DirectInput Mode]
c21a Precision Gamepad
c21c G13 Advanced Gameboard
c21d F310 Gamepad [XInput Mode]
c21e F510 Gamepad [XInput Mode]
c21f F710 Wireless Gamepad [XInput Mode]
c221 G11/G15 Keyboard / Keyboard
c222 G15 Keyboard / LCD
c223 G11/G15 Keyboard / USB Hub
c225 G11/G15 Keyboard / G keys
c226 G15 Refresh Keyboard
c227 G15 Refresh Keyboard
c228 G19 Gaming Keyboard
c229 G19 Gaming Keyboard Macro Interface
c22a Gaming Keyboard G110
c22b Gaming Keyboard G110 G-keys
c22d G510 Gaming Keyboard
c22e G510 Gaming Keyboard onboard audio
c231 G13 Virtual Mouse
c232 Gaming Virtual Keyboard
c245 G400 Optical Mouse
c246 Gaming Mouse G300
c247 G100S Optical Gaming Mouse
c248 G105 Gaming Keyboard
c24a G600 Gaming Mouse
c24c G400s Optical Mouse
c24d G710 Gaming Keyboard
c24e G500s Laser Gaming Mouse
c24f G29 Driving Force Racing Wheel [PS3]
c251 GamePanel for Dell XPS M1730
c260 G29 Driving Force Racing Wheel [PS4]
c262 G920 Driving Force Racing Wheel
c281 WingMan Force
c283 WingMan Force 3D
c285 WingMan Strike Force 3D
c286 Force 3D Pro
c287 Flight System G940
c291 WingMan Formula Force
c293 WingMan Formula Force GP
c294 Driving Force
c295 Momo Force Steering Wheel
c298 Driving Force Pro
c299 G25 Racing Wheel
c29a Driving Force GT
c29b G27 Racing Wheel
c29c Speed Force Wireless Wheel for Wii
c2a0 Wingman Force Feedback Mouse
c2a1 WingMan Force Feedback Mouse
c2ab G13 Joystick
c301 iTouch Keyboard
c302 iTouch Pro Keyboard
c303 iTouch Keyboard
c305 Internet Keyboard
c307 Internet Keyboard
c308 Internet Navigator Keyboard
c309 Y-BF37 [Internet Navigator Keyboard]
c30a iTouch Composite
c30b NetPlay Keyboard
c30c Internet Keys (X)
c30d Internet Keys
c30e UltraX Keyboard (Y-BL49)
c30f Logicool HID-Compliant Keyboard (106 key)
c311 Y-UF49 [Internet Pro Keyboard]
c312 DeLuxe 250 Keyboard
c313 Internet 350 Keyboard
c315 Classic Keyboard 200
c316 HID-Compliant Keyboard
c317 Wave Corded Keyboard
c318 Illuminated Keyboard
c31a Comfort Wave 450
c31b Compact Keyboard K300
c31c Keyboard K120
c31d Media Keyboard K200
c31f Comfort Keyboard K290
c326 Washable Keyboard K310
c328 Corded Keyboard K280e
c32b G910 Orion Spark Mechanical Keyboard
c332 G502 Proteus Spectrum Optical Mouse
c335 G910 Orion Spectrum Mechanical Keyboard
c336 G213 Prodigy Gaming Keyboard
c33a G413 Gaming Keyboard
c33e G915 Mechanical Keyboard
c33f G815 Mechanical Keyboard
c401 TrackMan Marble Wheel
c402 Marble Mouse (2-button)
c403 Turbo TrackMan Marble FX
c404 TrackMan Wheel
c408 Marble Mouse (4-button)
c501 Cordless Mouse Receiver
c502 Cordless Mouse & iTouch Keys
c503 Cordless Mouse+Keyboard Receiver
c504 Cordless Mouse+Keyboard Receiver
c505 Cordless Mouse+Keyboard Receiver
c506 MX700 Cordless Mouse Receiver
c508 Cordless Trackball
c509 Cordless Keyboard & Mouse
c50a Cordless Mouse
c50b Cordless Desktop Optical
c50c Cordless Desktop S510
c50d Cordless Mouse
c50e Cordless Mouse Receiver
c510 Cordless Mouse
c512 LX-700 Cordless Desktop Receiver
c513 MX3000 Cordless Desktop Receiver
c514 Cordless Mouse
c515 Cordless 2.4 GHz Presenter Presentation remote control
c517 LX710 Cordless Desktop Laser
c518 MX610 Laser Cordless Mouse
c51a MX Revolution/G7 Cordless Mouse
c51b V220 Cordless Optical Mouse for Notebooks
c521 Cordless Mouse Receiver
c525 MX Revolution Cordless Mouse
c526 Nano Receiver
c529 Logitech Keyboard + Mice
c52b Unifying Receiver
c52d R700 Remote Presenter receiver
c52e MK260 Wireless Combo Receiver
c52f Nano Receiver
c531 C-U0007 [Unifying Receiver]
c532 Unifying Receiver
c534 Nano Receiver
c537 Cordless Mouse Receiver
c539 Lightspeed Receiver
c53a PowerPlay Wireless Charging System
c53d G631 Keyboard
c542 M185 compact wireless mouse
c548 Logi Bolt Receiver
c603 3Dconnexion Spacemouse Plus XT
c605 3Dconnexion CADman
c606 3Dconnexion Spacemouse Classic
c621 3Dconnexion Spaceball 5000
c623 3Dconnexion Space Traveller 3D Mouse
c625 3Dconnexion Space Pilot 3D Mouse
c626 3Dconnexion Space Navigator 3D Mouse
c627 3Dconnexion Space Explorer 3D Mouse
c628 3Dconnexion Space Navigator for Notebooks
c629 3Dconnexion SpacePilot Pro 3D Mouse
c62b 3Dconnexion Space Mouse Pro
c640 NuLOOQ navigator
c702 Cordless Presenter
c703 Elite Keyboard Y-RP20 + Mouse MX900 (Bluetooth)
c704 diNovo Wireless Desktop
c705 MX900 Bluetooth Wireless Hub (C-UJ16A)
c707 Bluetooth wireless hub
c708 Bluetooth wireless hub
c709 BT Mini-Receiver (HCI mode)
c70a MX5000 Cordless Desktop
c70b BT Mini-Receiver (HID proxy mode)
c70c BT Mini-Receiver (HID proxy mode)
c70d Bluetooth wireless hub
c70e MX1000 Bluetooth Laser Mouse
c70f Bluetooth wireless hub
c712 Bluetooth wireless hub
c714 diNovo Edge Keyboard
c715 Bluetooth wireless hub
c71a Bluetooth wireless hub
c71d Bluetooth wireless hub
c71f diNovo Mini Wireless Keyboard
c720 Bluetooth wireless hub
ca03 MOMO Racing
ca04 Formula Vibration Feedback Wheel
ca84 Cordless Controller for Xbox
ca88 Thunderpad for Xbox
ca8a Precision Vibration Feedback Wheel for Xbox
caa3 DriveFX Racing Wheel
cab1 Cordless Keyboard for Wii HID Receiver
d001 QuickCam Pro
f301 Controller
046e Behavior Tech. Computer Corp.
0100 Keyboard
3001 Mass Storage Device
3002 Mass Storage Device
3003 Mass Storage Device
3005 Mass Storage Device
3008 Mass Storage Device
5250 KeyMaestro Multimedia Keyboard
5273 KeyMaestro Multimedia Keyboard
52e6 Cordless Mouse
5308 KeyMaestro Keyboard
5408 KeyMaestro Multimedia Keyboard/Hub
5500 Portable Keyboard 86+9 keys (Model 6100C US)
5550 5 button optical mouse model M873U
5720 Smart Card Reader
6782 BTC 7932 mouse+keyboard
046f Crystal Semiconductor
0471 Philips (or NXP)
0101 DSS350 Digital Speaker System
0104 DSS330 Digital Speaker System [uda1321]
0105 UDA1321
014f GoGear SA9200
0160 MP3 Player
0161 MP3 Player
0163 GoGear SA1100
0164 GoGear SA1110/02
0165 GoGear SA1330
0201 Hub
0222 Creative Nomad Jukebox
0302 PCA645VC Webcam [pwc]
0303 PCA646VC Webcam [pwc]
0304 Askey VC010 Webcam [pwc]
0307 PCVC675K Webcam [pwc]
0308 PCVC680K Webcam [pwc]
030b PC VGA Camera (Vesta Fun)
030c PCVC690K Webcam [pwc]
0310 PCVC730K Webcam [pwc]
0311 PCVC740K ToUcam Pro [pwc]
0312 PCVC750K Webcam [pwc]
0314 DMVC 1000K
0316 DMVC 2000K Video Capture
0321 FunCam
0322 DMVC1300K PC Camera
0325 SPC 200NC PC Camera
0326 SPC 300NC PC Camera
0327 Webcam SPC 6000 NC (Webcam w/ mic)
0328 SPC 700NC PC Camera
0329 SPC 900NC PC Camera / ORITE CCD Webcam(PC370R)
032d SPC 210NC PC Camera
032e SPC 315NC PC Camera
0330 SPC 710NC PC Camera
0331 SPC 1300NC PC Camera
0332 SPC 1000NC PC Camera
0333 SPC 620NC PC Camera
0334 SPC 520/525NC PC Camera
0401 Semiconductors CICT Keyboard
0402 PS/2 Mouse on Semiconductors CICT Keyboard
0406 15 inch Detachable Monitor
0407 10 inch Mobile Monitor
0408 SG3WA1/74 802.11b WLAN Adapter [Atmel AT76C503A]
0471 Digital Speaker System
0601 OVU1020 IR Dongle (Kbd+Mouse)
0602 ATI Remote Wonder II Input Device
0603 ATI Remote Wonder II Controller
0608 eHome Infrared Receiver
060a TSU9600 Remote Control
060c Consumer Infrared Transceiver (HP)
060d Consumer Infrared Transceiver (SRM5100)
060e RF Dongle
060f Consumer Infrared Transceiver
0613 Infrared Transceiver
0617 IEEE802.15.4 RF Dongle
0619 TSU9400 Remote Control
0666 Hantek DDS-3005 Arbitrary Waveform Generator
0700 Semiconductors CICT Hub
0701 150P1 TFT Display
0809 AVNET Bluetooth Device
0811 JR24 CDRW
0814 DCCX38/P data cable
0815 eHome Infrared Receiver
0844 SA2111/02 1GB Flash Audio Player
084a GoGear SA3125
084e GoGear SA60xx (mtp)
0888 Hantek DDS-3005 Arbitrary Waveform Generator
1103 Digital Speaker System
1120 Creative Rhomba MP3 player
1125 Nike psa[128max Player
1137 HDD065 MP3 player
1201 Arima Bluetooth Device
1230 Wireless Adapter 11g
1232 SNU6500 Wireless Adapter
1233 Wireless Adapter Bootloader Download
1236 SNU5600 802.11bg
1237 TalkTalk SNU5630NS/05 802.11bg
1552 ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit
1801 Diva MP3 player
200a Wireless Network Adapter
200f 802.11n Wireless Adapter
2021 SDE3273FC/97 2.5" SATA HDD Enclosure [INIC-1608L]
2022 GoGear SA52XX
2034 Webcam SPC530NC
2036 Webcam SPC1030NC
203f TSU9200 Remote Control
2046 TSU9800 Remote Control
204e GoGear RaGa (SA1942/02)
205e TSU9300 Remote Control
206c MCE IR Receiver - Spinel plusf0r ASUS
2070 GoGear Mix
2076 GoGear Aria
2079 GoGear Opus
2088 MCE IR Receiver with ALS- Spinel plus for ASUS
209e PTA01 Wireless Adapter
20b6 GoGear Vibe
20d0 SPZ2000 Webcam [PixArt PAC7332]
20e3 GoGear Raga
20e4 GoGear ViBE 8GB
2160 Mio LINK Heart Rate Monitor
21e0 GoGEAR Raga
262c SPC230NC Webcam
2721 PTA 317 TV Camera
485d Senselock SenseIV v2.x
df55 LPCXpresso LPC-Link
0472 Chicony Electronics Co., Ltd
0065 PFU-65 Keyboard [Chicony]
b086 Asus USB2.0 Webcam
b091 Webcam
0473 Sanyo Information Business Co., Ltd
0474 Sanyo Electric Co., Ltd
0110 Digital Voice Recorder R200
0217 Xacti J2
022f C5 Digital Media Camera (mass storage mode)
0230 C5 Digital Media Camera (PictBridge mode)
0231 C5 Digital Media Camera (PC control mode)
0401 Optical Drive
0701 SCP-4900 Cellphone
071f Usb Com Port Enumerator
0722 W33SA Camera
0475 Relisys/Teco Information System
0100 NEC Petiscan
0103 Eclipse 1200U/Episode
0210 Scorpio Ultra 3
0476 AESP
0477 Seagate Technology, Inc.
0478 Connectix Corp.
0001 QuickCam
0002 QuickClip
0003 QuickCam Pro
0479 Advanced Peripheral Laboratories
047a Semtech Corp.
0004 ScreenCoder UR7HCTS2-USB
047b Silitek Corp.
0001 Keyboard
0002 Keyboard and Mouse
0011 SK-1688U Keyboard
00f9 SK-1789u Keyboard
0101 BlueTooth Keyboard and Mouse
020b SK-3105 SmartCard Reader
050e Internet Compact Keyboard
1000 Trust Office Scan USB 19200
1002 HP ScanJet 4300c Parallel Port
047c Dell Computer Corp.
ffff UPS Tower 500W LV
047d Kensington
00f2 VeriMark Desktop
1001 Mouse*in*a*Box
1002 Expert Mouse Pro
1003 Orbit TrackBall
1004 MouseWorks
1005 TurboBall
1006 TurboRing
1009 Orbit TrackBall for Mac
1012 PocketMouse
1013 Mouse*in*a*Box Optical Pro
1014 Expert Mouse Pro Wireless
1015 Expert Mouse
1016 ADB/USB Orbit
1018 Studio Mouse
101d Mouse*in*a*Box Optical Pro
101e Studio Mouse Wireless
101f PocketMouse Pro
1020 Expert Mouse Trackball
1021 Expert Mouse Wireless
1022 Orbit Optical
1023 Pocket Mouse Pro Wireless
1024 PocketMouse
1025 Mouse*in*a*Box Optical Elite Wireless
1026 Pocket Mouse Pro
1027 StudioMouse
1028 StudioMouse Wireless
1029 Mouse*in*a*Box Optical Elite
102a Mouse*in*a*Box Optical
102b PocketMouse
102c Iridio
102d Pilot Optical
102e Pilot Optical Pro
102f Pilot Optical Pro Wireless
1042 Ci25m Notebook Optical Mouse [Diamond Eye Precision]
1043 Ci65m Wireless Notebook Optical Mouse
104a PilotMouse Mini Retractable
105d PocketMouse Bluetooth
105e Bluetooth EDR Dongle
1061 PocketMouse Grip
1062 PocketMouse Max
1063 PocketMouse Max Wireless
1064 PocketMouse 2.0 Wireless
1065 PocketMouse 2.0
1066 PocketMouse Max Glow
1067 ValueMouse
1068 ValueOpt White
1069 ValueOpt Black
106a PilotMouse Laser Wireless Mini
106b PilotMouse Laser - 3 Button
106c PilotMouse Laser - Gaming
106d PilotMouse Laser - Wired
106e PilotMouse Micro Laser
1070 ValueOpt Travel
1071 ValueOpt RF TX
1072 PocketMouse Colour
1073 PilotMouse Laser - 6 Button
1074 PilotMouse Laser Wireless Mini
1075 SlimBlade Presenter Media Mouse
1076 SlimBlade Media Mouse
1077 SlimBlade Presenter Mouse
1152 Bluetooth EDR Dongle
2002 Optical Elite Wireless
2010 Wireless Presentation Remote
2012 Wireless Presenter with Laser Pointer
2021 PilotBoard Wireless
2030 PilotBoard Wireless
2034 SlimBlade Media Notebook Set
2041 SlimBlade Trackball
2048 Orbit Trackball with Scroll Ring
4003 Gravis Xterminator Digital Gamepad
4005 Gravis Eliminator GamePad Pro
4006 Gravis Eliminator AfterShock
4007 Gravis Xterminator Force
4008 Gravis Destroyer TiltPad
5001 Cabo I Camera
5002 VideoCam CABO II
5003 VideoCam
8018 Expert Wireless Trackball Mouse (K72359WW)
8068 Pro Fit Ergo Vertical Wireless Trackball
047e Agere Systems, Inc. (Lucent)
0300 ORiNOCO Card
1001 USS720 Parallel Port
2892 Systems Soft Modem
bad1 Lucent 56k Modem
f101 Atlas Modem
047f Plantronics, Inc.
0101 Bulk Driver
02ee BT600
0301 Bulk Driver
0411 Savi Office Base Station
0ca1 USB DSP v4 Audio Interface
4254 BUA-100 Bluetooth Adapter
aa05 DA45
ac01 Savi 7xx
ad01 GameCom 777 5.1 Headset
af00 DA70
af01 DA80
c008 Audio 655 DSP
c00e Blackwire C310 headset
c03b HD1
c053 Blackwire C5220 headset (remote control and 3.5mm audio adapter)
c056 Blackwire C3220 Headset
ca01 Calisto 800 Series
da60 DA60
0480 Toshiba America Inc
0001 InTouch Module
0004 InTouch Module
0011 InTouch Module
0014 InTouch Module
0100 Stor.E Slim USB 3.0
0200 External Disk
0212 Toshiba Canvio Connect II 500GB Portable Hard Drive
0820 Canvio Advance Disk
0821 Canvio Advance 2TB model DTC920
0900 MQ04UBF100
a006 UAS Controller
a007 External Disk USB 3.0
a009 Stor.E Basics
a00d STOR.E BASICS 500GB
a100 Canvio Alu 2TB 2.5" Black External Disk Model HDTH320EK3CA
a102 Canvio Alu 2TB 2.5" Black External Disk Model HDTH320EK3CA
a202 Canvio Basics HDD
a208 Canvio Basics 2TB USB 3.0 Portable Hard Drive
b001 Stor.E Partner
b207 Canvio Ready
d000 External Disk 2TB Model DT01ABA200
d010 External Disk 3TB
d011 Canvio Desk
0481 Zenith Data Systems
0482 Kyocera Corp.
000e FS-1020D Printer
000f FS-1920 Mono Printer
0015 FS-1030D printer
0100 Finecam S3x
0101 Finecam S4
0103 Finecam S5
0105 Finecam L3
0106 Finecam
0107 Digital Camera Device
0108 Digital Camera Device
0203 AH-K3001V
0204 iBurst Terminal
0408 FS-1320D Printer
0640 ECOSYS M6026cdn
069b ECOSYS M2635dn
06b4 ECOSYS M5526cdw
0483 STMicroelectronics
0102 Remote NDIS Network device with Android debug (ADB)
0103 Remote NDIS Network device
0104 MTP device with Android debug (ADB)
0105 MTP device
0106 PTP device with Android debug (ADB)
0107 PTP device
0137 BeWAN ADSL USB ST (blue or green)
0138 Unicorn II (ST70138B + MTC-20174TQ chipset)
0adb Android Debug Bridge (ADB) device
0afb Android Fastboot device
1307 Cytronix 6in1 Card Reader
163d Cool Icam Digi-MP3
2015 TouchChip® Fingerprint Reader
2016 Fingerprint Reader
2017 Biometric Smart Card Reader
2018 BioSimKey
2302 Portable Flash Device (PFD)
3744 ST-LINK/V1
3747 ST Micro Connect Lite
3748 ST-LINK/V2
374b ST-LINK/V2.1
374d STLINK-V3 Loader
374e STLINK-V3
374f STLINK-V3
3752 ST-LINK/V2.1
3753 STLINK-V3
4810 ISDN adapter
481d BT Digital Access adapter
5000 ST Micro/Ergenic ERG BT-002 Bluetooth Adapter
5001 ST Micro Bluetooth Device
5710 Joystick in FS Mode
5720 Mass Storage Device
5721 Interrupt Demo
5722 Bulk Demo
572a STM32F401 microcontroller [ARM Cortex M4] [CDC/ACM serial port]
5730 Audio Speaker
5731 Microphone
5740 Virtual COM Port
5750 LED badge -- mini LED display -- 11x44
7270 ST Micro Serial Bridge
7554 56k SoftModem
8213 ThermaData Logger Cradle
8259 Probe
91d1 Sensor Hub
a171 ThermaData WiFi
a2e0 BMeasure instrument
a43f inbed.io - Unified Controller (Gen 2)
df11 STM Device in DFU Mode
ff10 Swann ST56 Modem
0484 Specialix
0485 Nokia Monitors
0486 ASUS Computers, Inc.
0185 EeePC T91MT HID Touch Panel
573c Xreal Light Microcontroller
0487 Stewart Connector
0488 Cirque Corp.
0489 Foxconn / Hon Hai
0502 SmartMedia Card Reader Firmware Loader
0503 SmartMedia Card Reader
d00c Rollei Compactline (Storage Mode)
d00e Rollei Compactline (Video Mode)
e000 T-Com TC 300
e003 Pirelli DP-L10
e00d Broadcom Bluetooth 2.1 Device
e00f Foxconn T77H114 BCM2070 [Single-Chip Bluetooth 2.1 + EDR Adapter]
e011 Acer Bluetooth module
e016 Ubee PXU1900 WiMAX Adapter [Beceem BCSM250]
e02c Atheros AR5BBU12 Bluetooth Device
e032 Broadcom BCM20702 Bluetooth
e042 Broadcom BCM20702 Bluetooth
e04d Atheros AR3012 Bluetooth
e055 BCM43142A0 broadcom bluetooth
e07a Broadcom BCM20702A1 Bluetooth
e0c8 MediaTek MT7921 Bluetooth
e0cd MediaTek Bluetooth Adapter
e0d8 Bluetooth 5.2 Adapter [MediaTek MT7922]
048a S-MOS Systems, Inc.
048c Alps Electric Ireland, Ltd
048d Integrated Technology Express, Inc.
1165 IT1165 Flash Controller
1172 Flash Drive
1234 Chipsbank CBM2199 Flash Drive
1336 SD/MMC Cardreader
1345 Multi Cardreader
5702 RGB LED Controller
6008 8291 RGB keyboard backlight controller
8297 IT8297 RGB LED Controller
9006 IT9135 BDA Afatech DVB-T HDTV Dongle
9009 Zolid HD DVD Maker
9135 Zolid Mini DVB-T Stick
9306 IT930x DVB stick
9503 ITE it9503 feature-limited DVB-T transmission chip [ccHDtv]
9507 ITE it9507 full featured DVB-T transmission chip [ccHDtv]
9910 IT9910 chipset based grabber
ff59 Hdmi-CEC Bridge
048f Eicon Tech.
0490 United Microelectronics Corp.
0491 Capetronic
0003 Taxan Monitor Control
0492 Samsung SemiConductor, Inc.
0140 MP3 player
0141 MP3 Player
0493 MAG Technology Co., Ltd
0495 ESS Technology, Inc.
0496 Micron Electronics
0497 Smile International
c001 Camera Device
0498 Capetronic (Kaohsiung) Corp.
0499 Yamaha Corp.
1000 UX256 MIDI I/F
1001 MU1000
1002 MU2000
1003 MU500
1004 UW500
1005 MOTIF6
1006 MOTIF7
1007 MOTIF8
1008 UX96 MIDI I/F
1009 UX16 MIDI I/F
100a EOS BX
100c UC-MX
100d UC-KX
100e S08
100f CLP-150
1010 CLP-170
1011 P-250
1012 TYROS
1013 PF-500
1014 S90
1015 MOTIF-R
1016 MDP-5
1017 CVP-204
1018 CVP-206
1019 CVP-208
101a CVP-210
101b PSR-1100
101c PSR-2100
101d CLP-175
101e PSR-K1
101f EZ-J24
1020 EZ-250i
1021 MOTIF ES 6
1022 MOTIF ES 7
1023 MOTIF ES 8
1024 CVP-301
1025 CVP-303
1026 CVP-305
1027 CVP-307
1028 CVP-309
1029 CVP-309GP
102a PSR-1500
102b PSR-3000
102e ELS-01/01C
1030 PSR-295/293
1031 DGX-205/203
1032 DGX-305
1033 DGX-505
1037 PSR-E403
103c MOTIF-RACK ES
1045 MM6
1054 S90XS Keyboard/Music Synthesizer
160f P-105
1613 Clavinova CLP535
1617 PSR-E353 digital keyboard
1704 Steinberg UR44
2000 DGP-7
2001 DGP-5
3001 YST-MS55D USB Speaker
3003 YST-M45D USB Speaker
4000 NetVolante RTA54i Broadband&ISDN Router
4001 NetVolante RTW65b Broadband Wireless Router
4002 NetVolante RTW65i Broadband&ISDN Wireless Router
4004 NetVolante RTA55i Broadband VoIP Router
5000 CS1D
5001 DSP1D
5002 DME32
5003 DM2000
5004 02R96
5005 ACU16-C
5006 NHB32-C
5007 DM1000
5008 01V96
5009 SPX2000
500a PM5D
500b DME64N
500c DME24N
6001 CRW2200UX Lightspeed 2 External CD-RW Drive
7000 DTX
7010 UB99
049a Gandalf Technologies, Ltd
049b Curtis Computer Products
049c Acer Advanced Labs, Inc.
0002 Keyboard (???)
049d VLSI Technology
049f Compaq Computer Corp.
0002 InkJet Color Printer
0003 iPAQ PocketPC
000e Internet Keyboard
0012 InkJet Color Printer
0018 PA-1/PA-2 MP3 Player
0019 InkJet Color Printer
001a S4 100 Scanner
001e IJ650 Inkjet Printer
001f WL215 Adapter
0021 S200 Scanner
0027 Bluetooth Multiport Module by Compaq
002a 1400P Inkjet Printer
002b A3000
002c Lexmark X125
0032 802.11b Adapter [ipaq h5400]
0033 Wireless LAN MultiPort W100 [Intersil PRISM 2.5]
0036 Bluetooth Multiport Module
0051 KU-0133 Easy Access Interner Keyboard
0076 Wireless LAN MultiPort W200
0080 GPRS Multiport
0086 Bluetooth Device
504a Personal Jukebox PJB100
505a Linux-USB "CDC Subset" Device, or Itsy (experimental)
8511 iPAQ Networking 10/100 Ethernet [pegasus2]
04a0 Digital Equipment Corp.
04a1 SystemSoft Corp.
fff0 Telex Composite Device
04a2 FirePower Systems
04a3 Trident Microsystems, Inc.
04a4 Hitachi, Ltd
0004 DVD-CAM DZ-MV100A Camcorder
001e DVDCAM USB HS Interface
04a5 Acer Peripherals Inc. (now BenQ Corp.)
0001 Keyboard
0002 API Ergo K/B
0003 API Generic K/B Mouse
12a6 AcerScan C310U
1a20 Prisa 310U
1a2a Prisa 620U
2022 Prisa 320U/340U
2040 Prisa 620UT
205e ScanPrisa 640BU
2060 Prisa 620U+/640U
207e Prisa 640BU
209e ScanPrisa 640BT
20ae S2W 3000U
20b0 S2W 3300U/4300U
20be Prisa 640BT
20c0 Prisa 1240UT
20de S2W 4300U+
20f8 Benq 5000
20fc Benq 5000
20fe SW2 5300U
2137 Benq 5150/5250
2202 Benq 7400UT
2311 Benq 5560
3003 Benq Webcam
3008 Benq 1500
300a Benq 3410
300c Benq 1016
3019 Benq DC C40
4000 P30 Composite Device
4013 BenQ-Siemens EF82/SL91
4044 BenQ-Siemens SF71
4045 BenQ-Siemens E81
4048 BenQ M7
6001 Mass Storage Device
6002 Mass Storage Device
6003 ATA/ATAPI Adapter
6004 Mass Storage Device
6005 Mass Storage Device
6006 Mass Storage Device
6007 Mass Storage Device
6008 Mass Storage Device
6009 Mass Storage Device
600a Mass Storage Device
600b Mass Storage Device
600c Mass Storage Device
600d Mass Storage Device
600e Mass Storage Device
600f Mass Storage Device
6010 Mass Storage Device
6011 Mass Storage Device
6012 Mass Storage Device
6013 Mass Storage Device
6014 Mass Storage Device
6015 Mass Storage Device
6125 MP3 Player
6180 MP3 Player
6200 MP3 Player
7500 Hi-Speed Mass Storage Device
8001 BenQ ZOWIE Gaming Mouse
9000 AWL300 Wireless Adapter
9001 AWL400 Wireless Adapter
9213 Kbd Hub
04a6 Nokia Display Products
00b9 Audio
0180 Hub Type P
0181 HID Monitor Controls
04a7 Visioneer
0063 Visioneer DocuMate 152i
0100 StrobePro
0101 Strobe Pro Scanner (1.01)
0102 StrobePro Scanner
0211 OneTouch 7600 Scanner
0221 OneTouch 5300 Scanner
0223 OneTouch 8200
0224 OneTouch 4800 USB/Microtek Scanport 3000
0225 VistaScan Astra 3600(ENG)
0226 OneTouch 5300 USB
0229 OneTouch 7100
022a OneTouch 6600
022c OneTouch 9000/9020
0231 6100 Scanner
0311 6200 EPP/USB Scanner
0321 OneTouch 8100 EPP/USB Scanner
0331 OneTouch 8600 EPP/USB Scanner
0341 6400
0361 VistaScan Astra 3600(ENG)
0362 OneTouch 9320
0371 OneTouch 8700/8920
0380 OneTouch 7700
0382 Photo Port 7700
0390 9650
03a0 Xerox 4800 One Touch
0410 OneTouch Pro 8800/8820
0421 9450 USB
0423 9750 Scanner
0424 Strobe XP 450
0425 Strobe XP 100
0426 Strobe XP 200
0427 Strobe XP 100
0444 OneTouch 7300
0445 CardReader 100
0446 Xerox DocuMate 510
0447 XEROX DocuMate 520
0448 XEROX DocuMate 250
0449 Xerox DocuMate 252
044a Xerox 6400
044c Xerox DocuMate 262
0474 Strobe XP 300
0475 Xerox DocuMate 272
0478 Strobe XP 220
0479 Strobe XP 470
047a 9450
047b 9650
047d 9420
0480 9520
048f Strobe XP 470
0491 Strobe XP 450
0493 9750
0494 Strobe XP 120
0497 Patriot 430
0498 Patriot 680
0499 Patriot 780
049b Strobe XP 100
04a0 7400
04ac Xerox Travel Scanner 100
04bb strobe 400 scanner
04cd Xerox Travel Scanner 150
04ee Duplex Combo Scanner
04a8 Multivideo Labs, Inc.
0101 Hub
0303 Peripheral Switch
0404 Peripheral Switch
04a9 Canon, Inc.
1005 BJ Printer Hub
1035 PD Printer Storage
1050 BJC-8200
1051 BJC-3000 Color Printer
1052 BJC-6100
1053 BJC-6200
1054 BJC-6500
1055 BJC-85
1056 BJC-2110 Color Printer
1057 LR1
105a BJC-55
105b S600 Printer
105c S400
105d S450 Printer
105e S800
1062 S500 Printer
1063 S4500
1064 S300 Printer
1065 S100
1066 S630
1067 S900
1068 S9000
1069 S820
106a S200 Printer
106b S520 Printer
106d S750 Printer
106e S820D
1070 S530D
1071 Sony MPR-501
1072 I850 Printer
1073 I550 Printer
1074 S330 Printer
1075 Sony MPR-505
1076 i70
1077 i950
107a S830D
107b i320
107c i470D
107d i9100
107e i450
107f i860
1082 i350
1084 i250
1085 i255
1086 i560
1088 i965
108a i455
108b i900D
108c i475D
108d PIXMA iP2000
108f i80
1090 i9900 Photo Printer
1091 PIXMA iP1500
1093 PIXMA iP4000
1094 PIXMA iP3000x Printer
1095 PIXMA iP6000D
1097 PIXMA iP5000
1098 PIXMA iP1000
1099 PIXMA iP8500
109c PIXMA iP4000R
109d iP90
10a0 PIXMA iP1600 Printer
10a2 iP4200
10a4 iP5200R
10a5 iP5200
10a7 iP6210D
10a8 iP6220D
10a9 iP6600D
10b6 PIXMA iP4300 Printer
10b7 PIXMA iP5300 Printer
10c2 PIXMA iP1800 Printer
10c4 Pixma iP4500 Printer
10c9 PIXMA iP4600 Printer
10ca PIXMA iP3600 Printer
10e3 PIXMA iX6850 Printer
12fe Printer in service mode
1404 W6400PG
1405 W8400PG
150f BIJ2350 PCL
1510 BIJ1350 PCL
1512 BIJ1350D PCL
1601 DR-2080C Scanner
1607 DR-6080 Scanner
1608 DR-2580C Scanner
1609 DR-3080CII
160a DR-2050C Scanner
1700 PIXMA MP110 Scanner
1701 PIXMA MP130 Scanner
1702 MP410 Composite
1703 MP430 Composite
1704 MP330 Composite
1706 PIXMA MP750 Scanner
1707 PIXMA MP780/MP790
1708 PIXMA MP760/MP770
1709 PIXMA MP150 Scanner
170a PIXMA MP170 Scanner
170b PIXMA MP450 Scanner
170c PIXMA MP500 Scanner
170d PIXMA MP800 Scanner
170e PIXMA MP800R
1710 MP950
1712 PIXMA MP530
1713 PIXMA MP830 Scanner
1714 MP160
1715 PIXMA MP180
1716 PIXMA MP460
1717 PIXMA MP510
1718 PIXMA MP600
1719 PIXMA MP600R
171a PIXMA MP810
171b PIXMA MP960
171c PIXMA MX7600
1721 PIXMA MP210
1722 PIXMA MP220
1723 PIXMA MP470
1724 PIXMA MP520 series
1725 PIXMA MP610
1726 PIXMA MP970
1727 PIXMA MX300
1728 PIXMA MX310 series
1729 PIXMA MX700
172b MP140 ser
172c PIXMA MX850
172d PIXMA MP980
172e PIXMA MP630
172f PIXMA MP620
1730 PIXMA MP540
1731 PIXMA MP480
1732 PIXMA MP240
1733 PIXMA MP260
1734 PIXMA MP190
1735 PIXMA MX860
1736 PIXMA MX320 series
1737 PIXMA MX330
173a PIXMA MP250
173b PIXMA MP270 All-In-One Printer
173c PIXMA MP490
173d PIXMA MP550
173e PIXMA MP560
173f PIXMA MP640
1740 PIXMA MP990
1741 PIXMA MX340
1742 PIXMA MX350
1743 PIXMA MX870
1746 PIXMA MP280
1747 PIXMA MP495
1748 PIXMA MG5100 Series
1749 PIXMA MG5200 Series
174a PIXMA MG6100 Series
174b PIXMA MG8100 Series
174d PIXMA MX360
174e PIXMA MX410
174f PIXMA MX420
1750 PIXMA MX880 Series
1752 PIXMA MG3100 Series
1753 PIXMA MG4100 Series
1754 PIXMA MG5300 Series
1755 PIXMA MG6200 Series
1756 PIXMA MG8200 Series
1757 PIXMA MP493
1759 PIXMA MX370 Series
175b PIXMA MX430 Series
175c PIXMA MX510 Series
175d PIXMA MX710 Series
175e PIXMA MX890 Series
175f PIXMA MP230
1762 PIXMA MG3200 Series
1763 PIXMA MG4200 Series
1764 PIXMA MG5400 Series
1765 PIXMA MG6300 Series
1766 PIXMA MX390 Series
1768 PIXMA MX450 Series
1769 PIXMA MX520 Series
176a PIXMA MX720 Series
176b PIXMA MX920 Series
176d PIXMA MG2500 Series
176e PIXMA MG3500 Series
176f PIXMA MG6500 Series
1770 PIXMA MG6400 Series
1771 PIXMA MG5500 Series
1772 PIXMA MG7100 Series
1774 PIXMA MX470 Series
1775 PIXMA MX530 Series
177c PIXMA MG7500 Series
177e PIXMA MG6600 Series
177f PIXMA MG5600 Series
1780 PIXMA MG2900 Series
1787 PIXMA MX490 Series
178a PIXMA MG3600 Series
178d PIXMA MG6853
180b PIXMA MG3000 series
183b PIXMA MG3110 Series
1856 PIXMA TS6250
1900 CanoScan LiDE 90
1901 CanoScan 8800F
1904 CanoScan LiDE 100
1905 CanoScan LiDE 200
1906 CanoScan 5600F
1907 CanoScan LiDE 700F
1908 CanoScan 9000F
1909 CanoScan LiDE 110
190a CanoScan LiDE 210
190d CanoScan 9000F Mark II
190e CanoScan LiDE 120
190f CanoScan LiDE 220
1912 LiDE 400
1913 CanoScan LiDE 300
2200 CanoScan LiDE 25
2201 CanoScan FB320U
2202 CanoScan FB620U
2204 CanoScan FB630U
2205 CanoScan FB1210U
2206 CanoScan N650U/N656U
2207 CanoScan 1220U
2208 CanoScan D660U
220a CanoScan D2400UF
220b CanoScan D646U
220c CanoScan D1250U2
220d CanoScan N670U/N676U/LiDE 20
220e CanoScan N1240U/LiDE 30
220f CanoScan 8000F
2210 CanoScan 9900F
2212 CanoScan 5000F
2213 CanoScan LiDE 50/LiDE 35/LiDE 40
2214 CanoScan LiDE 80
2215 CanoScan 3000/3000F/3000ex
2216 CanoScan 3200F
2217 CanoScan 5200F
2219 CanoScan 9950F
221b CanoScan 4200F
221c CanoScan LiDE 60
221e CanoScan 8400F
221f CanoScan LiDE 500F
2220 CanoScan LIDE 25
2224 CanoScan LiDE 600F
2225 CanoScan LiDE 70
2228 CanoScan 4400F
2229 CanoScan 8600F
2602 MultiPASS C555
2603 MultiPASS C755
260a LBP810
260e LBP-2000
2610 MPC600F
2611 SmartBase MPC400
2612 MultiPASS C855
2617 LBP1210
261a iR1600
261b iR1610
261c iC2300
261f MPC200 Printer
2621 iR2000
2622 iR2010
2623 FAX-B180C
2629 FAXPHONE L75
262b LaserShot LBP-1120 Printer
262c imageCLASS D300
262d iR C3200
262f PIXMA MP730
2630 PIXMA MP700
2631 LASER CLASS 700
2632 FAX-L2000
2633 LASERCLASS 500
2634 PC-D300/FAX-L400/ICD300
2635 MPC190
2636 LBP3200
2637 iR C6800
2638 iR C3100
263c PIXMA MP360
263d PIXMA MP370
263e PIXMA MP390
263f PIXMA MP375R
2646 MF5530 Scanner Device V1.9.1
2647 MF5550 Composite
264c PIXMA MP740
264d PIXMA MP710
264e MF5630
264f MF5650 (FAX)
2650 iR 6800C EUR
2651 iR 3100C EUR
2654 LBP3600
2655 FP-L170/MF350/L380/L398
2656 iR1510-1670 CAPT Printer
2657 LBP3210
2659 MF8100
265b CAPT Printer
265c iR C3220
265d MF5730
265e MF5750
265f MF5770
2660 MF3110
2663 iR3570/iR4570
2664 iR2270/iR2870
2665 iR C2620
2666 iR C5800
2667 iR85PLUS
2669 iR105PLUS
266a LBP3000
266b iR8070
266c iR9070
266d iR 5800C EUR
266e CAPT Device
266f iR2230
2670 iR3530
2671 iR5570/iR6570
2672 iR C3170
2673 iR 3170C EUR
2674 FAX-L120
2675 iR2830
2676 LBP2900
2677 iR C2570
2678 iR 2570C EUR
2679 LBP5000
267a iR2016
267b iR2020
267d MF7100 series
267e LBP3300
2684 MF3200 series
2686 MF6500 series
2687 iR4530
2688 LBP3460
2689 FAX-L180/L380S/L398S
268a LC310/L390/L408S
268b LBP3500
268c iR C6870
268d iR 6870C EUR
268e iR C5870
268f iR 5870C EUR
2691 iR7105
26a1 LBP5300
26a3 MF4100 series
26a4 LBP5100
26b0 MF4600 series
26b4 MF4010 series
26b5 MF4200 series
26b6 FAX-L140/L130
26b9 LBP3310
26ba LBP5050
26da LBP3010/LBP3018/LBP3050
26db LBP3100/LBP3108/LBP3150
26e6 iR1024
26ea LBP9100C
26ee MF4320-4350
26f1 LBP7200C
26ff LBP6300
271a LBP6000
271b LBP6200
271c LBP7010C/7018C
2736 I-SENSYS MF4550d
2737 MF4410
2742 imageRUNNER1133 series
2771 LBP6020
2796 LBP6230/6240
3041 PowerShot S10
3042 CanoScan FS4000US Film Scanner
3043 PowerShot S20
3044 EOS D30
3045 PowerShot S100
3046 IXY Digital
3047 Digital IXUS
3048 PowerShot G1
3049 PowerShot Pro90 IS
304a CP-10
304b IXY Digital 300
304c PowerShot S300
304d Digital IXUS 300
304e PowerShot A20
304f PowerShot A10
3050 PowerShot unknown 1
3051 PowerShot S110
3052 Digital IXUS V
3055 PowerShot G2
3056 PowerShot S40
3057 PowerShot S30
3058 PowerShot A40
3059 PowerShot A30
305b ZR45MC Digital Camcorder
305c PowerShot unknown 2
3060 EOS D60
3061 PowerShot A100
3062 PowerShot A200
3063 CP-100
3065 PowerShot S200
3066 Digital IXUS 330
3067 MV550i Digital Video Camera
3069 PowerShot G3
306a Digital unknown 3
306b MVX2i Digital Video Camera
306c PowerShot S45
306d PowerShot S45 PtP Mode
306e PowerShot G3 (normal mode)
306f PowerShot G3 (ptp)
3070 PowerShot S230
3071 PowerShot S230 (ptp)
3072 PowerShot SD100 / Digital IXUS II (ptp)
3073 PowerShot A70 (ptp)
3074 PowerShot A60 (ptp)
3075 IXUS 400 Camera
3076 PowerShot A300
3077 PowerShot S50
3078 ZR70MC Digital Camcorder
307a MV650i (normal mode)
307b MV630i Digital Video Camera
307c CP-200
307d CP-300
307f Optura 20
3080 MVX150i (normal mode) / Optura 20 (normal mode)
3081 Optura 10
3082 MVX100i / Optura 10
3083 EOS 10D
3084 EOS 300D / EOS Digital Rebel
3085 PowerShot G5
3087 Elura 50 (PTP mode)
3088 Elura 50 (normal mode)
308d MVX3i
308e FV M1 (normal mode) / MVX 3i (normal mode) / Optura Xi (normal mode)
3093 Optura 300
3096 IXY DV M2 (normal mode) / MVX 10i (normal mode)
3099 EOS 300D (ptp)
309a PowerShot A80
309b Digital IXUS (ptp)
309c PowerShot S1 IS
309d Powershot Pro 1
309f Camera
30a0 Camera
30a1 Camera
30a2 Camera
30a8 Elura 60E/Optura 40 (ptp)
30a9 MVX25i (normal mode) / Optura 40 (normal mode)
30b1 PowerShot S70 (normal mode) / PowerShot S70 (PTP mode)
30b2 PowerShot S60 (normal mode) / PowerShot S60 (PTP mode)
30b3 PowerShot G6 (normal mode) / PowerShot G6 (PTP mode)
30b4 PowerShot S500
30b5 PowerShot A75
30b6 Digital IXUS II2 / Digital IXUS II2 (PTP mode) / PowerShot SD110 (PTP mode) / PowerShot SD110 Digital ELPH
30b7 PowerShot A400 / PowerShot A400 (PTP mode)
30b8 PowerShot A310 / PowerShot A310 (PTP mode)
30b9 Powershot A85
30ba PowerShot S410 Digital Elph
30bb PowerShot A95
30bd CP-220
30be CP-330
30bf Digital IXUS 40
30c0 Digital IXUS 30 (PTP mode) / PowerShot SD200 (PTP mode)
30c1 Digital IXUS 50 (normal mode) / IXY Digital 55 (normal mode) / PowerShot A520 (PTP mode) / PowerShot SD400 (normal mode)
30c2 PowerShot A510 (normal mode) / PowerShot A510 (PTP mode)
30c4 Digital IXUS i5 (normal mode) / IXY Digital L2 (normal mode) / PowerShot SD20 (normal mode)
30ea EOS 1D Mark II (PTP mode)
30eb EOS 20D
30ec EOS 20D (ptp)
30ee EOS 350D
30ef EOS 350D (ptp)
30f0 PowerShot S2 IS (PTP mode)
30f2 Digital IXUS 700 (normal mode) / Digital IXUS 700 (PTP mode) / IXY Digital 600 (normal mode) / PowerShot SD500 (normal mode) / PowerShot SD500 (PTP mode)
30f4 PowerShot SD30 / Ixus iZoom / IXY DIGITAL L3
30f5 SELPHY CP500
30f6 SELPHY CP400
30f8 Powershot A430
30f9 PowerShot A410 (PTP mode)
30fa PowerShot S80
30fc PowerShot A620 (PTP mode)
30fd PowerShot A610 (normal mode)/PowerShot A610 (PTP mode)
30fe Digital IXUS 65 (PTP mode)/PowerShot SD630 (PTP mode)
30ff Digital IXUS 55 (PTP mode)/PowerShot SD450 (PTP mode)
3100 PowerShot TX1
310b SELPHY CP600
310e Digital IXUS 50 (PTP mode)
310f PowerShot A420
3110 EOS Digital Rebel XTi
3115 PowerShot SD900 / Digital IXUS 900 Ti / IXY DIGITAL 1000
3116 Digital IXUS 750 / PowerShot SD550 (PTP mode)
3117 PowerShot A700
3119 PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS
311a PowerShot S3 IS
311b PowerShot A540
311c PowerShot SD600 DIGITAL ELPH / DIGITAL IXUS 60 / IXY DIGITAL 70
3125 PowerShot G7
3126 PowerShot A530
3127 SELPHY CP710
3128 SELPHY CP510
312d Elura 100
3136 PowerShot SD800 IS / Digital IXUS 850 IS / IXY DIGITAL 900 IS
3137 PowerShot SD40 / Digital IXUS i7 IXY / DIGITAL L4
3138 PowerShot A710 IS
3139 PowerShot A640
313a PowerShot A630
3141 SELPHY ES1
3142 SELPHY CP730
3143 SELPHY CP720
3145 EOS 450D
3146 EOS 40D
3147 EOS 1Ds Mark III
3148 PowerShot S5 IS
3149 PowerShot A460
314b PowerShot SD850 IS DIGITAL ELPH / Digital IXUS 950 IS / IXY DIGITAL 810 IS
314c PowerShot A570 IS
314d PowerShot A560
314e PowerShot SD750 DIGITAL ELPH / DIGITAL IXUS 75 / IXY DIGITAL 90
314f PowerShot SD1000 DIGITAL ELPH / DIGITAL IXUS 70 / IXY DIGITAL 10
3150 PowerShot A550
3155 PowerShot A450
315a PowerShot G9
315b PowerShot A650 IS
315d PowerShot A720
315e PowerShot SX100 IS
315f PowerShot SD950 IS DIGITAL ELPH / DIGITAL IXUS 960 IS / IXY DIGITAL 2000 IS
3160 Digital IXUS 860 IS
3170 SELPHY CP750
3171 SELPHY CP740
3172 SELPHY CP520
3173 PowerShot SD890 IS DIGITAL ELPH / Digital IXUS 970 IS / IXY DIGITAL 820 IS
3174 PowerShot SD790 IS DIGITAL ELPH / Digital IXUS 90 IS / IXY DIGITAL 95 IS
3175 IXY Digital 25 IS
3176 PowerShot A590
3177 PowerShot A580
317a PC1267 [Powershot A470]
3184 Digital IXUS 80 IS (PTP mode)
3185 SELPHY ES2
3186 SELPHY ES20
318d PowerShot SX100 IS
318e PowerShot A1000 IS
318f PowerShot G10
3191 PowerShot A2000 IS
3192 PowerShot SX110 IS
3193 PowerShot SD990 IS DIGITAL ELPH / Digital IXUS 980 IS / IXY DIGITAL 3000 IS
3195 PowerShot SX1 IS
3196 PowerShot SD880 IS DIGITAL ELPH / Digital IXUS 870 IS / IXY DIGITAL 920 IS
3199 EOS 5D Mark II
319a EOS 7D
319b EOS 50D
31aa SELPHY CP770
31ab SELPHY CP760
31ad PowerShot E1
31af SELPHY ES3
31b0 SELPHY ES30
31b1 SELPHY CP530
31bc PowerShot D10
31bd PowerShot SD960 IS DIGITAL ELPH / Digital IXUS 110 IS / IXY DIGITAL 510 IS
31be PowerShot A2100 IS
31bf PowerShot A480
31c0 PowerShot SX200 IS
31c1 PowerShot SD970 IS DIGITAL ELPH / Digital IXUS 990 IS / IXY DIGITAL 830 IS
31c2 PowerShot SD780 IS DIGITAL ELPH / Digital IXUS 100 IS / IXY DIGITAL 210 IS
31c3 PowerShot A1100 IS
31c4 PowerShot SD1200 IS DIGITAL ELPH / Digital IXUS 95 IS / IXY DIGITAL 110 IS
31cf EOS Rebel T1i / EOS 500D / EOS Kiss X3
31dd SELPHY CP780
31df PowerShot G11
31e0 PowerShot SX120 IS
31e1 PowerShot S90
31e4 PowerShot SX20 IS
31e5 Digital IXUS 200 IS
31e6 PowerShot SD940 IS DIGITAL ELPH / Digital IXUS 120 IS / IXY DIGITAL 220 IS
31e7 SELPHY CP790
31ea EOS Rebel T2i / EOS 550D / EOS Kiss X4
31ee SELPHY ES40
31ef PowerShot A495
31f0 PowerShot A490
31f1 PowerShot A3100 IS / PowerShot A3150 IS
31f2 PowerShot A3000 IS
31f3 PowerShot Digital ELPH SD1400 IS
31f4 PowerShot SD1300 IS / IXUS 105
31f5 Powershot SD3500 IS / IXUS 210 IS
31f6 PowerShot SX210 IS
31f7 Powershot SD4000 IS / IXUS 300 HS / IXY 30S
31f8 Powershot SD4500 IS / IXUS 1000 HS / IXY 50S
31ff Digital IXUS 55
3209 Vixia HF S21 A
320f PowerShot G12
3210 Powershot SX30 IS
3211 PowerShot SX130 IS
3212 Powershot S95
3214 SELPHY CP800
3215 EOS 60D
3218 EOS 600D / Rebel T3i (ptp)
3219 EOS 1D X
3223 PowerShot A3300 IS
3224 PowerShot A3200 IS
3225 PowerShot ELPH 500 HS / IXUS 310 HS
3226 PowerShow A800
3227 PowerShot ELPH 100 HS / IXUS 115 HS
3228 PowerShot SX230 HS
3229 PowerShot ELPH 300 HS / IXUS 220 HS
322a PowerShot A2200
322b Powershot A1200
322c PowerShot SX220 HS
3233 PowerShot G1 X
3234 PowerShot SX150 IS
3235 PowerShot ELPH 510 HS / IXUS 1100 HS
3236 PowerShot S100
3237 PowerShot ELPH 310 HS / IXUS 230 HS
3238 PowerShot SX40 HS
323a EOS 5D Mark III
323b EOS Rebel T4i
323d EOS M
323e PowerShot A1300
323f PowerShot A810
3240 PowerShot ELPH 320 HS / IXUS 240 HS
3241 PowerShot ELPH 110 HS / IXUS 125 HS
3242 PowerShot D20
3243 PowerShot A4000 IS
3244 PowerShot SX260 HS
3245 PowerShot SX240 HS
3246 PowerShot ELPH 530 HS / IXUS 510 HS
3247 PowerShot ELPH 520 HS / IXUS 500 HS
3248 PowerShot A3400 IS
3249 PowerShot A2400 IS
324a PowerShot A2300
3250 EOS 6D
3252 EOS 1D C
3253 EOS 70D
3255 SELPHY CP900
3256 SELPHY CP810
3258 PowerShot G15
3259 PowerShot SX50 HS
325a PowerShot SX160 IS
325b PowerShot S110
325c PowerShot SX500 IS
325e PowerShot N
325f PowerShot SX280 HS
3260 PowerShot SX270 HS
3261 PowerShot A3500 IS
3262 PowerShot A2600
3263 PowerShot SX275 HS
3264 PowerShot A1400
3265 Powershot ELPH 130 IS / IXUS 140
3266 Powershot ELPH 120 IS / IXUS 135
3268 PowerShot ELPH 330 HS / IXUS 255 HS
326f EOS 7D Mark II
3270 EOS 100D
3271 PowerShot A2500
3272 EOS 700D
3274 PowerShot G16
3275 PowerShot S120
3276 PowerShot SX170 IS
3277 PowerShot SX510 HS
3278 PowerShot S200
327a SELPHY CP910
327b SELPHY CP820
327d Powershot ELPH 115 IS / IXUS 132
327f EOS Rebel T5 / EOS 1200D / EOS Kiss X70
3284 PowerShot D30
3285 PowerShot SX700 HS
3286 PowerShot SX600 HS
3287 PowerShot ELPH 140 IS / IXUS 150
3288 Powershot ELPH 135 / IXUS 145
3289 PowerShot ELPH 340 HS / IXUS 265 HS
328a PowerShot ELPH 150 IS / IXUS 155
328b PowerShot N Facebook(R) Ready
3299 EOS M3
329a PowerShot SX60 HS
329b PowerShot SX520 HS
329c PowerShot SX400 IS
329d PowerShot G7 X
329f PowerShot SX530 HS
32a0 EOS M10
32a6 PowerShot SX710 HS
32a7 PowerShot SX610 HS
32a8 PowerShot G3 X
32aa Powershot ELPH 160 / IXUS 160
32ab PowerShot ELPH 350HS / IXUS 275 HS
32ac PowerShot ELPH 170 IS / IXUS 170
32ad PowerShot SX410 IS
32b1 SELPHY CP1200
32b2 PowerShot G9 X
32b3 PowerShot G5 X
32b4 EOS Rebel T6
32bb EOS M5
32bf PowerShot SX420 IS
32c0 PowerShot ELPH 190IS
32c1 PowerShot ELPH 180 / IXUS 175
32c2 PowerShot SX720 HS
32c5 EOS M6
32cc EOS 200D
32d1 EOS M100
32d2 EOS M50
32d4 Powershot ELPH 185 / IXUS 185 / IXY 200
32d5 PowerShot SX430 IS
32db SELPHY CP1300
3302 SELPHY CP1500
04aa DaeWoo Telecom, Ltd
04ab Chromatic Research
04ac Micro Audiometrics Corp.
04ad Dooin Electronics
2501 Bluetooth Device
04af Winnov L.P.
04b0 Nikon Corp.
0102 Coolpix 990
0103 Coolpix 880
0104 Coolpix 995
0106 Coolpix 775
0107 Coolpix 5000
0108 Coolpix 2500
0109 Coolpix 2500 (ptp)
010a Coolpix 4500
010b Coolpix 4500 (ptp)
010d Coolpix 5700 (ptp)
010e Coolpix 4300 (storage)
010f Coolpix 4300 (ptp)
0110 Coolpix 3500 (Sierra Mode)
0111 Coolpix 3500 (ptp)
0112 Coolpix 885 (ptp)
0113 Coolpix 5000 (ptp)
0114 Coolpix 3100 (storage)
0115 Coolpix 3100 (ptp)
0117 Coolpix 2100 (ptp)
0119 Coolpix 5400 (ptp)
011d Coolpix 3700 (ptp)
0121 Coolpix 3200 (ptp)
0122 Coolpix 2200 (ptp)
0124 Coolpix 8400 (mass storage mode)
0125 Coolpix 8400 (ptp)
0126 Coolpix 8800
0129 Coolpix 4800 (ptp)
012c Coolpix 4100 (storage)
012d Coolpix 4100 (ptp)
012e Coolpix 5600 (ptp)
0130 Coolpix 4600 (ptp)
0135 Coolpix 5900 (ptp)
0136 Coolpix 7900 (storage)
0137 Coolpix 7900 (ptp)
013a Coolpix 100 (storage)
013b Coolpix 100 (ptp)
0141 Coolpix P2 (storage)
0142 Coolpix P2 (ptp)
0163 Coolpix P5100 (ptp)
0169 Coolpix P50 (ptp)
0202 Coolpix SQ (ptp)
0203 Coolpix 4200 (mass storage mode)
0204 Coolpix 4200 (ptp)
0205 Coolpix 5200 (storage)
0206 Coolpix 5200 (ptp)
0301 Coolpix 2000 (storage)
0302 Coolpix 2000 (ptp)
0317 Coolpix L20 (ptp)
0402 DSC D100 (ptp)
0403 D2H (mass storage mode)
0404 D2H SLR (ptp)
0405 D70 (mass storage mode)
0406 DSC D70 (ptp)
0408 D2X SLR (ptp)
0409 D50 digital camera
040a D50 (ptp)
040c D2Hs
040e DSC D70s (ptp)
040f D200 (mass storage mode)
0410 D200 (ptp)
0411 D80 (mass storage mode)
0412 D80 (MTP/PTP mode)
0413 D40 (mass storage mode)
041e D60 digital camera (mass storage mode)
0422 D700 (ptp)
0423 D5000
0424 D3000
0425 D300S
0428 D7000
0429 D5100
042a D800 (ptp)
0430 D7100
0434 D610
0436 D810
043f D5600
0455 Z50II
0f03 PD-10 Wireless Printer Adapter
4000 Coolscan LS 40 ED
4001 LS 50 ED/Coolscan V ED
4002 Super Coolscan LS-5000 ED
04b1 Pan International
04b3 IBM Corp.
3003 Rapid Access III Keyboard
3004 Media Access Pro Keyboard
300a Rapid Access IIIe Keyboard
3016 UltraNav Keyboard Hub
3018 UltraNav Keyboard
301a 2-port low-power hub
301b SK-8815 Keyboard
301c Enhanced Performance Keyboard
301e Keyboard with UltraNav (SK-8845RC)
3020 Enhanced Performance Keyboard
3025 NetVista Full Width Keyboard
3100 NetVista Mouse
3103 ScrollPoint Pro Mouse
3104 ScrollPoint Wireless Mouse
3105 ScrollPoint Optical (HID)
3107 ThinkPad 800dpi Optical Travel Mouse
3108 800dpi Optical Mouse w/ Scroll Point
3109 Optical ScrollPoint Pro Mouse
310b Red Wheel Mouse
310c Wheel Mouse
4427 Portable CD ROM
4482 Serial Converter
4484 SMSC USB20H04 3-Port Hub [ThinkPad X4 UltraBase, Wistron S Note-3 Media Slice]
4485 ThinkPad Dock Hub
4524 40 Character Vacuum Fluorescent Display
4525 Double sided CRT
4535 4610 Suremark Printer
4550 NVRAM (128 KB)
4554 Cash Drawer
4580 Hub w/ NVRAM
4581 4800-2xx Hub w/ Cash Drawer
4604 Keyboard w/ Card Reader
4671 4820 LCD w/ MSR/KB
04b4 Cypress Semiconductor Corp.
0001 Mouse
0002 CY7C63x0x Thermometer
0008 CDC ACM serial port
0033 Mouse
0060 Wireless optical mouse
00f3 FX3 micro-controller (DFU mode)
0100 Cino FuzzyScan F760-B
0101 Keyboard/Hub
0102 Keyboard with APM
0130 MyIRC Remote Receiver
0306 Telephone Receiver
0407 Optical Skype Mouse
0818 AE-SMKD92-* [Thumb Keyboard]
0bad MetaGeek Wi-Spy
1002 CY7C63001 R100 FM Radio
1006 Human Interface Device
2050 hub
2830 Opera1 DVB-S (cold state)
3813 NANO BIOS Programmer
4235 Monitor 02 Driver
4381 SCAPS USC-1 Scanner Controller
4611 Storage Adapter FX2 (CY)
4616 Flash Disk (TPP)
4624 DS-Xtreme Flash Card
4717 West Bridge
5201 Combi Keyboard-Hub (Hub)
5202 Combi Keyboard-Hub (Keyboard)
5500 HID->COM RS232 Adapter
5a9b Dacal CD/DVD Library D-101/DC-300/DC-016RW
6022 Hantek DSO-6022BE
602a Hantek DSO-6022BL
6370 ViewMate Desktop Mouse CC2201
6502 CY4609
6506 CY4603
650a CY4613
6560 CY7C65640 USB-2.0 "TetraHub"
6570 Unprogrammed CY7C65632/34 hub HX2VL
6572 Unprogrammed CY7C65642 hub
6830 CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI
6831 Storage Adapter ISD-300LP (CY)
7417 Wireless PC Lock/Ultra Mouse
8329 USB To keyboard/Mouse Converter
8613 CY7C68013 EZ-USB FX2 USB 2.0 Development Kit
8614 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
861f Anysee E30 USB 2.0 DVB-T Receiver
bca1 Barcode Reader
cc04 Centor USB RACIA-ALVAR USB PORT
cc06 Centor-P RACIA-ALVAR USB PORT
d5d5 CY7C63x0x Zoltrix Z-Boxer GamePad
de61 Barcode Reader
de64 Barcode Reader
f000 CY30700 Licorice evaluation board
f111 CY8CKIT-002 PSoC MiniProg3 Rev A Program and debug kit
f115 PSoC FirstTouch Programmer
f139 KitProg
f231 DELLY Changer 4in1 universal IR remote
f232 Mono embedded computer
fd10 Gembird MSIS-PM
fd13 Energenie EG-PMS
fd15 Energenie EG-PMS2
04b5 ROHM LSI Systems USA, LLC
3064 Hantek DSO-3064
6022 Hantek DSO-6022BE
602a Hantek DSO-6022BL
04b6 Hint Corp.
04b7 Compal Electronics, Inc.
04b8 Seiko Epson Corp.
0001 Stylus Color 740 / Photo 750
0002 ISD Smart Cable for Mac
0003 ISD Smart Cable
0004 Printer
0005 Printer
0006 Printer
0007 Printer
0015 Stylus Photo R3000
0080 SC-P400 Series
0101 GT-7000U [Perfection 636]
0102 GT-2200
0103 GT-6600U [Perfection 610]
0104 GT-7600UF [Perfection 1200U/1200U Photo]
0105 Stylus Scan 2000
0106 Stylus Scan 2500
0107 ES-2000 [Expression 1600U]
0108 CC-700
0109 ES-8500 [Expression 1640 XL]
010a GT-8700/GT-8700F [Perfection 1640SU/1640SU PHOTO]
010b GT-7700U [Perfection 1240U]
010c GT-6700U [Perfection 640]
010d CC-500L
010e ES-2200 [Perfection 1680]
010f GT-7200U [Perfection 1250/1250 PHOTO]
0110 GT-8200U/GT-8200UF [Perfection 1650/1650 PHOTO]
0112 GT-9700F [Perfection 2450 PHOTO]
0114 Perfection 660
0116 GT-9400UF [Perfection 3170]
0118 GT-F600 [Perfection 4180]
0119 GT-X750 [Perfection 4490 Photo]
011a CC-550L [1000 ICS]
011b GT-9300UF [Perfection 2400 PHOTO]
011c GT-9800F [Perfection 3200]
011d GT-7300U [Perfection 1260/1260 PHOTO]
011e GT-8300UF [Perfection 1660 PHOTO]
011f GT-8400UF [Perfection 1670/1670 PHOTO]
0120 GT-7400U [Perfection 1270]
0121 GT-F500/GT-F550 [Perfection 2480/2580 PHOTO]
0122 GT-F520/GT-F570 [Perfection 3590 PHOTO]
0126 ES-7000H [GT-15000]
0128 GT-X700 [Perfection 4870]
0129 ES-10000G [Expression 10000XL]
012a GT-X800 [Perfection 4990 PHOTO]
012b ES-H300 [GT-2500]
012c GT-X900 [Perfection V700/V750 Photo]
012d GT-F650 [GT-S600/Perfection V10/V100]
012e GT-F670 [Perfection V200 Photo]
012f GT-F700 [Perfection V350]
0130 GT-X770 [Perfection V500]
0131 GT-F720 [GT-S620/Perfection V30/V300 Photo]
0133 GT-1500 [GT-D1000]
0135 GT-X970
0136 ES-D400 [GT-S80]
0137 ES-D200 [GT-S50]
0138 ES-H7200 [GT-20000]
013a GT-X820 [Perfection V600 Photo]
0142 GT-F730 [GT-S630/Perfection V33/V330 Photo]
0143 GT-S55
0144 GT-S85
0151 Perfection V800 Photo
0202 Interface Card UB-U05 for Thermal Receipt Printers [M129C/TM-T70/TM-T88IV]
0401 CP 800 Digital Camera
0402 PhotoPC 850z
0403 PhotoPC 3000z
0509 JVC PIX-MC10
0601 Stylus Photo 875DC Card Reader
0602 Stylus Photo 895 Card Reader
0801 CC-600PX [Stylus CX5200/CX5400/CX6600]
0802 CC-570L [Stylus CX3100/CX3200]
0803 Printer (Composite Device)
0804 Storage Device
0805 Stylus CX6300/CX6400
0806 PM-A850 [Stylus Photo RX600/610]
0807 Stylus Photo RX500/510
0808 Stylus CX5200/CX5300/CX5400
0809 Storage Device
080a F-3200
080c ME100 [Stylus CX1500]
080d Stylus CX4500/4600
080e PX-A550 [CX-3500/3600/3650 MFP]
080f Stylus Photo RX420/RX425/RX430
0810 PM-A900 [Stylus Photo RX700]
0811 PM-A870 [Stylus Photo RX620/RX630]
0812 MFP Composite Device
0813 Stylus CX6500/6600
0814 PM-A700
0815 LP-A500 [AcuLaser CX1]
0816 Printer (Composite Device)
0817 LP-M5500/LP-M5500F
0818 Stylus CX3700/CX3800/DX3800
0819 PX-A650 [Stylus CX4700/CX4800/DX4800/DX4850]
081a PM-A750 [Stylus Photo RX520/RX530]
081b MFP Composite Device
081c PM-A890 [Stylus Photo RX640/RX650]
081d PM-A950
081e MFP Composite Device
081f Stylus CX7700/7800
0820 Stylus CX4100/CX4200/DX4200
0821 Stylus CX5700F/CX5800F
0822 Storage Device
0823 MFP Composite Device
0824 Storage Device
0825 MFP Composite Device
0826 Storage Device
0827 PM-A820 [Stylus Photo RX560/RX580/RX585/RX590]
0828 PM-A970
0829 PM-T990
082a PM-A920
082b Stylus CX5900/CX5000/DX5000/DX5050
082c Storage Device
082d Storage Device
082e PX-A720 [Stylus CX5900/CX6000/DX6000]
082f PX-A620 [Stylus CX3900/DX4000/DX4050]
0830 ME 200 [Stylus CX2800/CX2900]
0831 Stylus CX6900F/CX7000F/DX7000F
0832 MFP Composite Device
0833 LP-M5600
0834 LP-M6000
0835 AcuLaser CX21
0836 PM-T960
0837 PM-A940 [Stylus Photo RX680/RX685/RX690]
0838 PX-A640 [CX7300/CX7400/DX7400]
0839 PX-A740 [CX8300/CX8400/DX8400]
083a PX-FA700 [CX9300F/CX9400Fax/DX9400F]
083b MFP Composite Device
083c PM-A840S [Stylus Photo RX595/RX610]
083d MFP Composite Device
083e MFP Composite Device
083f Stylus CX4300/CX4400/CX5500/CX5600/DX4400/DX4450
0841 PX-401A [ME 300/Stylus NX100]
0843 LP-M5000
0844 EP-901A/EP-901F [Artisan 800/Stylus Photo PX800FW]
0846 EP-801A [Artisan 700/Stylus Photo PX700W/TX700W]
0847 PX-601F [ME Office 700FW/Stylus Office BX600FW/TX600FW]
0848 ME Office 600F/Stylus Office BX300F/TX300F
0849 Stylus SX205
084a PX-501A [Stylus NX400]
084d PX-402A [Stylus SX115/Stylus NX110 Series]
084f Multifunctional Printer Scanner [ME Office 510 / Epson Stylus SX215]
0850 EP-702A [Stylus Photo PX650/TX650 Series]
0851 Stylus SX410
0852 EP-802A [Artisan 710 Series/Stylus Photo PX710W/TX720W Series]
0853 EP-902A [Artisan 810 Series/Stylus Photo PX810FW Series]
0854 ME OFFICE 650FN Series/Stylus Office BX310FN/TX520FN Series
0855 PX-602F [Stylus Office BX610FW/TX620FW Series]
0856 PX-502A [Stylus SX515W]
085c ME 320/330 Series [Stylus SX125]
085d PX-603F [ME OFFICE 960FWD Series/Stylus Office BX625FWD/TX620FWD Series]
085e PX-503A [ME OFFICE 900WD Series/Stylus Office BX525WD]
085f Stylus Office BX320FW/TX525FW Series
0860 EP-903A/EP-903F [Artisan 835/Stylus Photo PX820FWD Series]
0861 EP-803A/EP-803AW [Artisan 725/Stylus Photo PX720WD/TX720WD Series]
0862 EP-703A [Stylus Photo PX660 Series]
0863 ME OFFICE 620F Series/Stylus Office BX305F/BX305FW/TX320F
0864 ME OFFICE 560W Series
0865 ME OFFICE 520 Series
0866 AcuLaser MX20DN/MX20DNF/MX21DNF
0869 PX-1600F
086a PX-673F [Stylus Office BX925FWD]
0870 Stylus Office BX305FW Plus
0871 K200 Series
0872 K300 Series
0873 L200 Series
0878 EP-704A
0879 EP-904A/EP-904F [Artisan 837/Stylus Photo PX830FWD Series]
087b EP-804A/EP-804AR/EP-804AW [Stylus Photo PX730WD/Artisan 730 Series]
087c PX-1700F
087d PX-B750F/WP-4525 Series
087f PX-403A
0880 PX-434A [Stylus NX330 Series]
0881 PX-404A [ME OFFICE 535]
0883 ME 340 Series/Stylus NX130 Series
0884 Stylus NX430W Series
0885 Stylus NX230/SX235W Series
088f Stylus Office BX635FWD
0890 ME OFFICE 940FW Series/Stylus Office BX630FW Series
0891 Stylus Office BX535WD
0892 Stylus Office BX935FWD
0893 EP-774A
08d1 L220/L360 Series
0e03 Thermal Receipt Printer [TM-T20]
0e31 Thermal Receipt Printer [TM-L100]
1114 XP-440 [Expression Home Small-in-One Printer]
1115 ES-0133 [Expression Home XP-342]
1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
1168 Workforce WF-7820/7840 Series
1186 ET-2820 Series [ET-2820 EcoTank All-in-One]
118a ET-2810/L3250 Series [EcoTank ET-2810/L3250]
118b ET-2850/L4260 Series [EcoTank ET-2850/L4260]
11b0 XP-4200 Series [Expression Home XP-4200]
11b9 ET-2830/L3550 Series [EcoTank ET-2830/L3550]
11c8 ET-2860/L3270 Series [EcoTank ET-2860/L3270]
04b9 Rainbow Technologies, Inc.
0300 SafeNet USB SuperPro/UltraPro
1000 iKey 1000 Token
1001 iKey 1200 Token
1002 iKey Token
1003 iKey Token
1004 iKey Token
1005 iKey Token
1006 iKey Token
1200 iKey 2000 Token
1201 iKey Token
1202 iKey 2032 Token
1203 iKey Token
1204 iKey Token
1205 iKey Token
1206 iKey 4000 Token
1300 iKey 3000 Token
1301 iKey 3000
1302 iKey Token
1303 iKey Token
1304 iKey Token
1305 iKey Token
1306 iKey Token
8000 SafeNet Sentinel Hardware Key
04ba Toucan Systems, Ltd
04bb I-O Data Device, Inc.
0101 USB2-IDE/ATAPI Bridge Adapter
014a HDCL-UT
0201 USB2-IDE/ATAPI Bridge Adapter
0204 DVD Multi-plus unit iU-CD2
0206 DVD Multi-plus unit DVR-UEH8
0301 Storage Device
0314 USB-SSMRW SD-card
0319 USB2-IDE/ATAPI Bridge Adapter
031a USB2-IDE/ATAPI Bridge Adapter
031b USB2-IDE/ATAPI Bridge Adapter
031e USB-SDRW SD-card
0502 Nogatech Live! (BT)
0528 GV-USB Video Capture
0901 USB ETT
0904 ET/TX Ethernet [pegasus]
0913 ET/TX-S Ethernet [pegasus2]
0919 USB WN-B11
0922 IOData AirPort WN-B11/USBS 802.11b
0930 ETG-US2
0937 WN-WAG/USL Wireless LAN Adapter
0938 WN-G54/USL Wireless LAN Adapter
093b WN-GDN/USB
093f WNGDNUS2 802.11n
0944 WHG-AGDN/US Wireless LAN Adapter
0945 WN-GDN/US3 Wireless LAN Adapter
0947 WN-G150U Wireless LAN Adapter
0948 WN-G300U Wireless LAN Adapter
0a03 Serial USB-RSAQ1
0a07 USB2-iCN Adapter
0a08 USB2-iCN Adapter
0c01 FM-10 Pro Disk
04bd Toshiba Electronics Taiwan Corp.
04be Telia Research AB
04bf TDK Corp.
0100 MediaReader CF
0115 USB-PDC Adapter UPA9664
0116 USB-cdmaOne Adapter UCA1464
0117 USB-PHS Adapter UHA6400
0118 USB-PHS Adapter UPA6400
0135 MediaReader Dual
0202 73S1121F Smart Card Reader-
0309 Bluetooth USB dongle
030a IBM Bluetooth Ultraport Module
030b Bluetooth Device
030c Ultraport Bluetooth Device
0310 Integrated Bluetooth
0311 Integrated Bluetooth Device
0317 Bluetooth UltraPort Module from IBM
0318 IBM Integrated Bluetooth
0319 Bluetooth Adapter
0320 Bluetooth Adapter
0321 Bluetooth Device
0a28 INDI AV-IN Device
1301 Network Controller
1302 i3 Gateway
1303 i3 Micro Module
1304 i3 Module
1305 i3 Multi Sensing Module
1400 Javelin Module Recovery
1401 Javelin Module
1500 Gas sensor demo board
04c1 U.S. Robotics (3Com)
0020 56K Voice Pro
0022 56K Voice Pro
007e ISDN TA
0082 OfficeConnect Analog Modem
008f Pro ISDN TA
0097 OfficeConnect Analog
009d HomeConnect Webcam [vicam]
00a9 ISDN Pro TA-U
00b9 HomeConnect IDSL Modem
3021 56k Voice FaxModem Pro
04c2 Methode Electronics Far East PTE, Ltd
04c3 Maxi Switch, Inc.
1102 Mouse
2102 Mouse
04c4 Lockheed Martin Energy Research
04c5 Fujitsu, Ltd
1029 fi-4010c Scanner
1033 fi-4110CU
1041 fi-4120c Scanner
1042 fi-4220c Scanner
105b AH-F401U Air H device
1084 PalmSecure Sensor V2
1096 fi-5110EOX
1097 fi-5110C
10ae fi-4120C2
10af fi-4220C2
10c7 fi-60f scanner
10e0 fi-5120c Scanner
10e1 fi-5220C
10e7 fi-5900C
10fe S500
1104 KD02906 Line Thermal Printer
114f fi-6130
1150 fi-6230
11f3 fi-6130Z
125a PalmSecure Sensor Device - MP
132e fi-7160
1526 PalmSecure-F Pro
159f ScanSnap iX1500
15ff Fi-8170 Document Scanner [Ricoh fi-8170: High Performance Desktop Scanner - PFU]
200f Sigma DP2 (Mass Storage)
2010 Sigma DP2 (PictBridge)
201d SATA 3.0 6Gbit/s Adaptor [GROOVY]
04c6 Toshiba America Electronic Components
04c7 Micro Macro Technologies
04c8 Konica Corp.
0720 Digital Color Camera
0721 e-miniD Camera
0722 e-mini
0723 KD-200Z Camera
0726 KD-310Z Camera
0728 Revio C2 Mass Storage Device
0729 Revio C2 Digital Camera
072c Revio KD20M
072d Revio KD410Z
04ca Lite-On Technology Corp.
0020 USB Keyboard
003a Multimedia Keyboard
004b Keyboard
004f SK-9020 keyboard
008a Acer Wired Mouse Model SM-9023
00f9 Multimedia Keyboard
1766 HID Monitor Controls
2004 Bluetooth 4.0 [Broadcom BCM20702A0]
2006 Broadcom BCM43142A0 Bluetooth Device
2007 Broadcom BCM43142A0 Bluetooth Device
3005 Atheros Bluetooth
300b Atheros AR3012 Bluetooth
300d Atheros AR3012 Bluetooth
300f Atheros AR3012 Bluetooth
3014 Qualcomm Atheros Bluetooth
3015 Qualcomm Atheros QCA9377 Bluetooth
3802 MediaTek Bluetooth MT7921
7022 HP HD Webcam
7025 HP HD Webcam
7046 TOSHIBA Web Camera - HD
7054 HP HD Webcam
705a HD Webcam (960×540)
9304 Hub
f01c TT1280DA DVB-T TV Tuner
04cb Fuji Photo Film Co., Ltd
0100 FinePix 30i/40i/50i, A101/201, 1300/2200, 1400/2400/2600/2800/4500/4700/4800/4900/6800/6900 Zoom
0103 FinePix NX-500/NX-700 printer
0104 FinePix A101, 2600/2800/4800/6800 Zoom (PC CAM)
0108 FinePix F601 Zoom (DSC)
0109 FinePix F601 Zoom (PC CAM)
010a FinePix S602 (Pro) Zoom (DSC)
010b FinePix S602 (Pro) Zoom (PC CAM)
010d FinePix S2 pro
010e FinePix F402 Zoom (DSC)
010f FinePix F402 Zoom (PC CAM)
0110 FinePix M603 Zoom (DSC)
0111 FinePix M603 Zoom (PC CAM)
0112 FinePix A202, A200 Zoom (DSC)
0113 FinePix A202, A200 Zoom (PC CAM)
0114 FinePix F401 Zoom (DSC)
0115 FinePix F401 Zoom (PC CAM)
0116 FinePix A203 Zoom (DSC)
0117 FinePix A203 Zoom (PC CAM)
0118 FinePix A303 Zoom (DSC)
0119 FinePix A303 Zoom (PC CAM)
011a FinePix S304/3800 Zoom (DSC)
011b FinePix S304/3800 Zoom (PC CAM)
011c FinePix A204/2650 Zoom (DSC)
011d FinePix A204/2650 Zoom (PC CAM)
0120 FinePix F700 Zoom (DSC)
0121 FinePix F700 Zoom (PC CAM)
0122 FinePix F410 Zoom (DSC)
0123 FinePix F410 Zoom (PC CAM)
0124 FinePix A310 Zoom (DSC)
0125 FinePix A310 Zoom (PC CAM)
0126 FinePix A210 Zoom (DSC)
0127 FinePix A210 Zoom (PC CAM)
0128 FinePix A205(S) Zoom (DSC)
0129 FinePix A205(S) Zoom (PC CAM)
012a FinePix F610 Zoom (DSC)
012b FinePix Digital Camera 030513
012c FinePix S7000 Zoom (DSC)
012d FinePix S7000 Zoom (PC CAM)
012f FinePix Digital Camera 030731
0130 FinePix S5000 Zoom (DSC)
0131 FinePix S5000 Zoom (PC CAM)
013b FinePix Digital Camera 030722
013c FinePix S3000 Zoom (DSC)
013d FinePix S3000 Zoom (PC CAM)
013e FinePix F420 Zoom (DSC)
013f FinePix F420 Zoom (PC CAM)
0142 FinePix S7000 Zoom (PTP)
0148 FinePix A330 Zoom (DSC)
0149 FinePix A330 Zoom (UVC)
014a FinePix A330 Zoom (PTP)
014b FinePix A340 Zoom (DSC)
014c FinePix A340 Zoom (UVC)
0159 FinePix F710 Zoom (DSC)
0165 FinePix S3500 Zoom (DSC)
0168 FinePix E500 Zoom (DSC)
0169 FinePix E500 Zoom (UVC)
016b FinePix E510 Zoom (DSC)
016c FinePix E510 Zoom (PC CAM)
016e FinePix S5500 Zoom (DSC)
016f FinePix S5500 Zoom (UVC)
0171 FinePix E550 Zoom (DSC)
0172 FinePix E550 Zoom (UVC)
0177 FinePix F10 (DSC)
0179 Finepix F10 (PTP)
0186 FinePix S5200/S5600 Zoom (DSC)
0188 FinePix S5200/S5600 Zoom (PTP)
018e FinePix S9500 Zoom (DSC)
018f FinePix S9500 Zoom (PTP)
0192 FinePix E900 Zoom (DSC)
0193 FinePix E900 Zoom (PTP)
019b FinePix F30 (PTP)
01af FinePix A700 (PTP)
01bf FinePix F6000fd/S6500fd Zoom (PTP)
01c0 FinePix F20 (PTP)
01c1 FinePix F31fd (PTP)
01c3 FinePix S5 Pro
01c4 FinePix S5700 Zoom (PTP)
01c5 FinePix F40fd (PTP)
01c6 FinePix A820 Zoom (PTP)
01d2 FinePix A800 Zoom (PTP)
01d3 FinePix A920 (PTP)
01d4 FinePix F50fd (PTP)
01d5 FinePix F47 (PTP)
01e7 Fujifilm A850 Digital Camera
01f7 FinePix J250 (PTP)
01fd A160
023e FinePix AX300
0240 FinePix S2950 Digital Camera
0241 FinePix S3200 Digital Camera
0278 FinePix JV300
02c5 FinePix S9900W Digital Camera (PTP)
02e0 X-T200 Digital Camera
5006 ASK-300
5007 DX100
04cc ST-Ericsson
1122 Hub
1520 USB 2.0 Hub (Avocent KVM)
1521 USB 2.0 Hub
1a62 GW Instek GSP-830 Spectrum Analyzer (HID)
2323 Ux500 serial debug port
2533 NFC device (PN533)
8116 Camera
04cd Tatung Co. Of America
04ce ScanLogic Corp.
0002 SL11R-IDE IDE Bridge
0100 USB2PRN Printer Class
0300 Phantom 336CX - C3 scanner
04ce SL11DEMO, VID: 0x4ce, PID: 0x4ce
07d1 SL11R, VID: 0x4ce, PID: 0x07D1
04cf Myson Century, Inc.
0022 OCZ Alchemy Series Elixir II Keyboard
0800 MTP800 Mass Storage Device
8810 CS8810 Mass Storage Device
8811 CS8811 Mass Storage Device
8813 CS8813 Mass Storage Device
8818 USB2.0 to ATAPI Bridge Controller
8819 USB 2.0 SD/MMC Reader
9920 CS8819A2-114 Mass Storage Device
04d0 Digi International
04d1 ITT Canon
04d2 Altec Lansing Technologies
0070 ADA70 Speakers
0305 Non-Compliant Audio Device
0311 ADA-310 Speakers
2060 Claritel-i750 - vp
ff05 ADA-305 Speakers
ff47 Lansing HID Audio Controls
ff49 Lansing HID Audio Controls
04d3 VidUS, Inc.
04d4 LSI Logic, Inc.
04d5 Forte Technologies, Inc.
04d6 Mentor Graphics
e301 Bio-Key TouchLock XL All Weather Keyless Bio-Lock with Fingerprint Recognition
e302 ZC3202 [4GB Green Book Digital Quran Reading Pen For Home Teaching Quran]
04d7 Oki Semiconductor
1be4 Bluetooth Device
04d8 Microchip Technology, Inc.
0002 PicoLCD 20x2
0003 PICkit 2 Microcontroller Programmer
000a CDC RS-232 Emulation Demo
000b PIC18F2550 (32K Flashable 10 Channel, 10 Bit A/D USB Microcontroller)
0032 PICkit1
0033 PICkit2
0036 PICkit Serial Analyzer
00dd MCP2221(a) UART/I2C Bridge
00e0 PIC32 Starter Board
04cd 28Cxxx EEPROM Programmer
0a04 AGP LIN Serial Analyzer
8000 In-Circuit Debugger
8001 ICD2 in-circuit debugger
8101 PIC24F Starter Kit
8107 Microstick II
8108 ChipKit Pro MX7 (PIC32MX)
9004 Microchip REAL ICE
9009 ICD3
900a PICkit3
9012 PICkit4
9015 ICD 4 In-Circuit Debugger
c001 PicoLCD 20x4
e11c TL866CS EEPROM Programmer [MiniPRO]
e72e YuanCon
e7ee travisgeis.com Bike Light
ec72 Joystick with Rotary Switch Creative Electronics Ltd
ed16 BeamiRC 2.0 CNC remote controller analoge
edb4 micro PLC (ATSAMD51G19A) [Black Brix ECU II]
edb5 ATMEGA32U4 [Black Brix ECU]
f2c4 Macareux-labs Hygrometry Temperature Sensor
f2f7 Yepkit YKUSH
f3aa Macareux-labs Usbce Bootloader mode
f437 SBE Tech Ultrasonic Anemometer
f4b5 SmartScope
f5fe TrueRNG
f8da Hughski Ltd. ColorHug
f8e8 Harmony 300/350 Remote
f91c SPROG IIv3
faff Dangerous Prototypes BusPirate v4 Bootloader mode
fb00 Dangerous Prototypes BusPirate v4
fbb2 GCUSB-nStep stepper motor controller
fbba DiscFerret Magnetic Disc Analyser (bootloader mode)
fbbb DiscFerret Magnetic Disc Analyser (active mode)
fc1e Bachrus Speedometer Interface
fc92 Open Bench Logic Sniffer
ffee Devantech USB-ISS
ffef PICoPLC [APStech]
04d9 Holtek Semiconductor, Inc.
0006 Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
0022 Portable Keyboard
0129 Keyboard [KBPV8000]
0169 Keyboard
0198 Keyboard
0348 Keyboard
0407 Keyboard [TEX Shinobi]
0462 Laser Gaming mouse
048e Optical Mouse
0499 Optical Mouse
1135 Mouse [MGK-15BU/MLK-15BU]
1203 Keyboard
1400 PS/2 keyboard + mouse controller
1503 Keyboard
1603 Keyboard
1605 Keyboard
1702 Keyboard LKS02
1818 Keyboard [Diatec Filco Majestouch 2]
2011 Keyboard [Diatec Filco Majestouch 1]
2013 Keyboard [Das Keyboard]
2206 Fujitsu Siemens Mouse Esprimo Q
2221 Keyboard
2323 Keyboard
2519 Shenzhen LogoTech 2.4GHz receiver
2832 HT82A832R Audio MCU
2834 HT82A834R Audio MCU
4545 Keyboard [Diatec Majestouch 2 Tenkeyless]
a01c wireless multimedia keyboard with trackball [Trust ADURA 17911]
a050 Chatman V1
a052 USB-zyTemp
a055 Keyboard
a075 Optical Gaming Mouse
a096 Keyboard
a09f E-Signal LUOM G10 Mechanical Gaming Mouse
a100 Mouse [HV-MS735]
a11b Mouse [MX-3200]
a153 Optical Gaming Mouse
a29f Microarray fingerprint reader
b534 LGT8F328P Microprocessor
e002 MCU
fc2a Gaming Mouse [Redragon M709]
fc30 Gaming Mouse [Redragon M711]
fc38 Gaming Mouse [Redragon M602-RGB]
fc4d Gaming Mouse [Redragon M908]
fc55 Venus MMO Gaming Mouse
04da Panasonic (Matsushita)
0901 LS-120 Camera
0912 SDR-S10
0b01 CD-R/RW Drive
0b03 SuperDisk 240MB
0d01 CD-R Drive KXL-840AN
0d09 CD-R Drive KXL-RW32AN
0d0a CD-R Drive KXL-CB20AN
0d0d CDRCB03
0d0e DVD-ROM & CD-R/RW
0d14 DVD-RAM MLT08
0f07 KX-MB2030 Multifunction Laser Printer
0f40 Printer
104d Elite Panaboard UB-T880 (HID)
104e Elite Panaboard Pen Adaptor (HID)
1500 MFSUSB Driver
1800 DY-WL10 802.11abgn Adapter [Broadcom BCM4323]
1b00 MultiMediaCard
2121 EB-VS6
2316 DVC Mass Storage Device
2317 DVC USB-SERIAL Driver for WinXP
2318 NV-GS11/230/250 (webcam mode)
2319 NV-GS15 (webcam mode)
231a NV-GS11/230/250 (DV mode)
231d DVC Web Camera Device
231e DVC DV Stream Device
2372 Lumix Camera (Storage mode)
2374 Lumix Camera (PTP mode)
2451 HDC-SD9
245b HC-X920K (3MOS Full HD video camcorder)
2477 SDR-H85 Camcorder (PC mode)
2478 SDR-H85 Camcorder (recorder mode - SD card)
2479 SDR-H85 Camcorder (recorder mode - HDD)
2497 HDC-TM700
250c Gobi Wireless Modem (QDL mode)
250d Gobi Wireless Modem
3904 N5HBZ0000055 802.11abgn Wireless Adapter [Atheros AR7010+AR9280]
3908 N5HBZ0000062 802.11abgn Wireless Adapter [Atheros AR9374v1.1]
3c04 JT-P100MR-20 [ePassport Reader]
04db Hypertec Pty, Ltd
04dc Huan Hsin Holdings, Ltd
04dd Sharp Corp.
13a6 MFC2000
6006 AL-1216
6007 AL-1045
6008 AL-1255
6009 AL-1530CS
600a AL-1540CS
600b AL-1456
600c AL-1555
600d AL-1225
600e AL-1551CS
600f AR-122E
6010 AR-152E
6011 AR-157E
6012 SN-1045
6013 SN-1255
6014 SN-1456
6015 SN-1555
6016 AR-153E
6017 AR-122E N
6018 AR-153E N
6019 AR-152E N
601a AR-157E N
601b AL-1217
601c AL-1226
601d AR-123E
6021 IS01
7002 DVC Ver.1.0
7004 VE-CG40U Digital Still Camera
7005 VE-CG30 Digital Still Camera
7007 VL-Z7S Digital Camcorder
8004 Zaurus SL-5000D/SL-5500 PDA
8005 Zaurus A-300
8006 Zaurus SL-B500/SL-5600 PDA
8007 Zaurus C-700 PDA
9009 AR-M160
9014 IM-DR80 Portable NetMD Player
9031 Zaurus C-750/C-760/C-860/SL-C3000 PDA
9032 Zaurus SL-6000
903a GSM GPRS
9050 Zaurus C-860 PDA
9056 Viewcam Z
9073 AM-900
9074 GSM GPRS
90a9 Sharp Composite
90d0 USB-to-Serial Comm. Port
90f2 Sharp 3G GSM USB Control
9120 WS004SH
9122 WS007SH
9123 W-ZERO3 ES Smartphone
91a3 922SH Internet Machine
939a IS03
04de MindShare, Inc.
04df Interlink Electronics
04e1 Iiyama North America, Inc.
0201 Monitor Hub
04e2 Exar Corp.
0801 XR22801 Hub
0802 XR22802 Hub
0804 XR22804 Hub
1100 XR2280x I2C Controller
1200 XR2280x GPIO Controller
1300 XR2280x 10/100 Ethernet
1400 XR2280x UART Channel A
1401 XR2280x UART Channel B
1402 XR2280x UART Channel C
1403 XR2280x UART Channel D
1410 XR21V1410 USB-UART IC
1411 XR21B1411 UART
1412 XR21V1412 2-channel UART
1414 XR21V1414 4-channel UART
1420 XR21B1420 UART
1422 XR21B1422 2-channel UART
1424 XR21B1424 4-channel UART
04e3 Zilog, Inc.
04e4 ACC Microelectronics
04e5 Promise Technology
04e6 SCM Microsystems, Inc.
0001 E-USB ATA Bridge
0002 eUSCSI SCSI Bridge
0003 eUSB SmartMedia Card Reader
0005 eUSB SmartMedia/CompactFlash Card Reader
0006 eUSB SmartMedia Card Reader
0007 Hifd
0009 eUSB ATA/ATAPI Adapter
000a eUSB CompactFlash Adapter
000b eUSCSI Bridge
000c eUSCSI Bridge
000d Dazzle MS
0012 Dazzle SD/MMC
0101 eUSB ATA Bridge (Sony Spressa USB CDRW)
0311 Dazzle DM-CF
0312 Dazzle DM-SD/MMC
0313 Dazzle SM
0314 Dazzle MS
0322 e-Film Reader-5
0325 eUSB ORCA Quad Reader
0327 Digital Media Reader
03fe DMHS2 DFU Adapter
0406 eUSB SmartDM Reader
04e6 eUSB DFU Adapter
04e7 STCII DFU Adapter
04e8 eUSBDM DFU Adapter
04e9 DM-E DFU Adapter
0500 Veridicom 5thSense Fingerprint Sensor and eUSB SmartCard
0701 DCS200 Loader Device
0702 DVD Creation Station 200
0703 DVC100 Loader Device
0704 Digital Video Creator 100
1001 SCR300 Smart Card Reader
1010 USBAT-2 CompactFlash Card Reader
1014 e-Film Reader-3
1020 USBAT ATA/ATAPI Adapter
2007 RSA SecurID ComboReader
2009 Citibank Smart Card Reader
200a Reflex v.2 Smart Card Reader
200d STR391 Reader
5111 SCR331-DI SmartCard Reader
5113 SCR333 SmartCard Reader
5114 SCR331-DI SmartCard Reader
5115 SCR335 SmartCard Reader
5116 SCR331-LC1 / SCR3310 SmartCard Reader
5117 SCR3320 - Smart Card Reader
5118 Expresscard SIM Card Reader
5119 SCR3340 - ExpressCard54 Smart Card Reader
511b SmartCard Reader
511d SCR3311 Smart Card Reader
5120 SCR331-DI SmartCard Reader
5121 SDI010 Smart Card Reader
5151 SCR338 Keyboard Smart Card Reader
5292 SCL011 RFID reader
5410 SCR35xx Smart Card Reader
5591 SCL3711-NFC&RW
5810 uTrust 2700 R Smart Card Reader
e000 SCRx31 Reader
e001 SCR331 SmartCard Reader
e003 SPR532 PinPad SmartCard Reader
04e7 Elo TouchSystems
0001 TouchScreen
0002 Touchmonitor Interface 2600 Rev 2
0004 4000U CarrollTouch® Touchmonitor Interface
0007 2500U IntelliTouch® Touchmonitor Interface
0008 3000U AccuTouch® Touchmonitor Interface
0009 4000U CarrollTouch® Touchmonitor Interface
0020 Touchscreen Interface (2700)
0021 Touchmonitor Interface
0030 4500U CarrollTouch® Touchmonitor Interface
0032 Touchmonitor Interface
0033 Touchmonitor Interface
0041 5010 Surface Capacitive Touchmonitor Interface
0042 Touchmonitor Interface
0050 2216 AccuTouch® Touchmonitor Interface
0071 Touchmonitor Interface
0072 Touchmonitor Interface
0081 Touchmonitor Interface
0082 Touchmonitor Interface
00ff Touchmonitor Interface
2902 WLIDS 21.5 Touchscreen
04e8 Samsung Electronics Co., Ltd
0001 Printer Bootloader
0100 Kingston Flash Drive (128MB)
0110 Connect3D Flash Drive
0111 Connect3D Flash Drive
0300 E2530 / GT-C3350 Phones (Mass storage mode)
04e8 Galaxy (MIDI mode)
1003 MP3 Player and Recorder
1006 SDC-200Z
130c NX100
1323 WB700 Camera
1f05 S2 Portable [JMicron] (500GB)
1f06 HX-MU064DA portable harddisk
2018 WIS09ABGN LinkStick Wireless LAN Adapter
2035 Digital Photo Frame Mass Storage
2036 Digital Photo Frame Mini Monitor
3004 ML-4600
3005 Docuprint P1210
3008 ML-6060 laser printer
300c ML-1210 Printer
300e Laser Printer
3104 ML-3550N
3210 ML-5200A Laser Printer
3226 Laser Printer
3228 Laser Printer
322a Laser Printer
322c Laser Printer
3230 ML-1440
3232 Laser Printer
3236 ML-1450
3238 ML-1430
323a ML-1710 Printer
323b Phaser 3130
323c Laser Printer
323d Phaser 3120
323e Laser Printer
3240 Laser Printer
3242 ML-1510 Laser Printer
3248 Color Laser Printer
324a Laser Printer
324c ML-1740 Printer
324d Phaser 3121
3256 ML-1520 Laser Printer
325b Xerox Phaser 3117 Laser Printer
325f Phaser 3425 Laser Printer
3260 CLP-510 Color Laser Printer
3268 ML-1610 Mono Laser Printer
326c ML-2010P Mono Laser Printer
3276 ML-3050/ML-3051 Laser Printer
327e ML-2510 Series
328e CLP-310 Color Laser Printer
3292 ML-1640 Series Laser Printer
3296 ML-2580N Mono Laser Printer
3297 ML-191x/ML-252x Laser Printer
329f CLP-325 Color Laser Printer
3301 ML-1660 Series
330c ML-1865
330f ML-216x Series Laser Printer
3310 ML-331x Series Laser Printer
3315 ML-2540 Series Laser Printer
331e M262x/M282x Xpress Series Laser Printer
3409 SCX-4216F Scanner
340c SCX-5x15 series
340d SCX-6x20 series
340e MFP 560 series
340f Printing Support
3412 SCX-4x20 series
3413 SCX-4100 Scanner
3415 Composite Device
3419 Composite Device
341a Printing Support
341b SCX-4200 series
341c Composite Device
341d Composite Device
341f Composite Device
3420 Composite Device
3426 SCX-4500 Laser Printer
342d SCX-4x28 Series
344f SCX-3400 Series
347e C48x Series Color Laser Multifunction Printer
3605 InkJet Color Printer
3606 InkJet Color Printer
3609 InkJet Color Printer
3902 InkJet Color Printer
3903 Xerox WorkCentre XK50cx
390f InkJet Color Printer
3911 SCX-1020 series
4001 PSSD T7
4005 GT-S8000 Jet (msc)
4f1f GT-S8000 Jet (mtp)
5000 YP-MF series
5001 YP-100
5002 YP-30
5003 YP-700
5004 YP-30
5005 YP-300
5006 YP-750
500d MP3 Player
5010 Yepp YP-35
5011 YP-780
5013 YP-60
5015 yepp upgrade
501b MP3 Player
5021 Yepp YP-ST5
5026 YP-MT6V
5027 YP-T7
502b YP-F1
5032 YP-J70
503b YP-U1 MP3 Player
503d YP-T7F
5041 YP-Z5
5050 YP-U2 MP3 Player
5051 YP-F2R
5055 YP-T9
507d YP-U3 (mtp)
507f YP-T9J
5080 Yepp YP-K3 (msc)
5081 Yepp YP-K3 (mtp)
5082 YP-P2 (msc)
5083 YP-P2 (mtp)
508a YP-T10
508b YP-S5 MP3 Player
508c YP-S5
5090 YP-S3 (msc)
5091 YP-S3 (mtp)
5092 YP-U4 (msc)
5093 YP-U4 (mtp)
5095 YP-S2
510f YP-R1
5119 Yepp YP-P3
511c YP-Q2
5121 YP-U5
5123 Yepp YP-M1
5a00 YP-NEU
5a01 YP-NDU
5a03 Yepp MP3 Player
5a04 YP-800
5a08 YP-90
5a0f Meizu M6 MiniPlayer
5b01 Memory Stick Reader/Writer
5b02 Memory Stick Reader/Writer
5b03 Memory Stick Reader/Writer
5b04 Memory Stick Reader/Writer
5b05 Memory Stick Reader/Writer
5b11 SEW-2001u Card
5f00 NEXiO Sync
5f01 NEXiO Sync
5f02 NEXiO Sync
5f03 NEXiO Sync
5f04 NEXiO Sync
5f05 STORY Station 1TB
6032 G2 Portable hard drive
6033 G2 Portable device
6034 G2 Portable hard drive
60b3 M2 Portable Hard Drive
60c4 M2 Portable Hard Drive USB 3.0
6124 D3 Station External Hard Drive
6125 D3 Station External Hard Drive
61b5 M3 Portable Hard Drive 2TB
61b6 M3 Portable Hard Drive 1TB
61b7 M3 Portable Hard Drive 4TB
61f3 Portable SSD T3 (MU-PT250B, MU-PT500B)
61f5 Portable SSD T5
6601 Mobile Phone
6602 Galaxy
6603 Galaxy
6611 MITs Sync
6613 MITs Sync
6615 MITs Sync
6617 MITs Sync
6619 MITs Sync
661b MITs Sync
661e Handheld
6620 Handheld
6622 Handheld
6624 Handheld
662e MITs Sync
6630 MITs Sync
6632 MITs Sync
663e D900e/B2100 Phone
663f SGH-E720/SGH-E840
6640 Usb Modem Enumerator
6651 i8510 Innov8
6702 X830
6708 U600 Phone
6709 U600
6734 Juke
6759 D900e/B2100 Media Player
675a D900e/B2100 Mass Storage
675b D900e Camera
6772 Standalone LTE device (Trial)
6795 S5230
6802 Standalone HSPA device
6806 Composite LTE device (Trial)
6807 Composite HSPA device
681c Galaxy Portal/Spica/S
681d Galaxy Portal/Spica Android Phone
6843 E2530 Phone (Samsung Kies mode)
684e Wave (GT-S8500)
685b GT-I9100 Phone [Galaxy S II] (mass storage mode)
685c GT-I9250 Phone [Galaxy Nexus] (Mass storage mode)
685d GT-I9100 Phone [Galaxy S II] (Download mode)
685e GT-I9100 / GT-C3350 Phones (USB Debugging mode)
6860 Galaxy series, misc. (MTP mode)
6863 Galaxy series, misc. (tethering mode)
6864 GT-I9070 (network tethering, USB debugging enabled)
6865 Galaxy (PTP mode)
6866 Galaxy (debugging mode)
6868 Escape Composite driver for Android Phones: Modem+Diagnostic+ADB
6875 GT-B3710 Standalone LTE device (Commercial)
6876 GT-B3710 LTE Modem
6877 Galaxy S
687a GT-E2370 mobile phone
6888 GT-B3730 Composite LTE device (Commercial)
6889 GT-B3730 Composite LTE device (Commercial)
689a LTE Storage Driver [CMC2xx]
689e GT-S5670 [Galaxy Fit]
68aa Reality
7011 SEW-2003U Card
7021 Bluetooth Device
7061 eHome Infrared Receiver
7080 Anycall SCH-W580
7081 Human Interface Device
7301 Fingerprint Device
8001 Handheld
8002 Portable SSD 500GB Model Number: MU - P8500B
8003 Portable SSD T1
d003 GT-I9003
e020 SERI E02 SCOM 6200 UMTS Phone
e021 SERI E02 SCOM 6200 Virtual UARTs
e022 SERI E02 SCOM 6200 Flash Load Disk
f000 Intensity 3 (Mass Storage Mode)
ff30 SG_iMON
04e9 PC-Tel, Inc.
04ea Brooktree Corp.
04eb Northstar Systems, Inc.
e004 eHome Infrared Transceiver
04ec Tokyo Electron Device, Ltd
04ed Annabooks
04ef Pacific Electronic International, Inc.
04f0 Daewoo Electronics Co., Ltd
04f1 Victor Company of Japan, Ltd
0001 GC-QX3 Digital Still Camera
0004 GR-DVL815U Digital Video Camera
0006 DV Camera Storage
0008 GZ-MG30AA/MC500E Digital Video Camera
0009 GR-DX25EK Digital Video Camera
000a GR-D72 Digital Video Camera
1001 GC-A50 Camera Device
3008 MP-PRX1 Ethernet
3009 MP-XP7250 WLAN Adapter
04f2 Chicony Electronics Co., Ltd
0001 KU-8933 Keyboard
0002 NT68P81 Keyboard
0110 KU-2971 Keyboard
0111 KU-9908 Keyboard
0112 KU-8933 Keyboard with PS/2 Mouse port
0116 KU-2971/KU-0325 Keyboard
0200 KBR-0108
0201 Gaming Keyboard KPD0250
0220 Wireless HID Receiver
0402 Genius LuxeMate i200 Keyboard
0403 KU-0420 keyboard
0418 KU-0418 Tactical Pad
0618 RG-0618U Wireless HID Receiver & KG-0609 Wireless Keyboard with Touchpad
0718 wired mouse
0760 Acer KU-0760 Keyboard
0833 KU-0833 Keyboard
0841 HP Multimedia Keyboard
0860 2.4G Multimedia Wireless Kit
0939 Amazon Basics mouse
1061 HP KG-1061 Wireless Keyboard+Mouse
1121 Periboard 717 Mini Wireless Keyboard
2159 PERIBOARD-535 [Perixx Ergo Keyboard]
a001 E-Video DC-100 Camera
a120 ORITE CCD Webcam(PC370R)
a121 ORITE CCD Webcam(PC370R)
a122 ORITE CCD Webcam(PC370R)
a123 ORITE CCD Webcam(PC370R)
a124 ORITE CCD Webcam(PC370R)
a128 PC Camera (SN9C202 + OV7663 + EEPROM)
a133 Gateway Webcam
a136 LabTec Webcam 5500
a147 Medion Webcam
a204 DSC WIA Device (1300)
a208 DSC WIA Device (2320)
a209 Labtec DC-2320
a20a DSC WIA Device (3310)
a20c DSC WIA Device (3320)
a210 Audio Device
b008 USB 2.0 Camera
b009 Integrated Camera
b010 Integrated Camera
b012 1.3 MPixel UVC
gitextract_lejw5r95/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── 1-bug-report.yml │ │ ├── 2-feature-request.yml │ │ └── config.yml │ ├── renovate.json5 │ └── workflows/ │ └── release.yml ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── build-guest-server.sh ├── data/ │ └── usb.ids ├── electron-builder.json ├── guest_server/ │ ├── RDPApps.reg │ ├── argon2.go │ ├── go.mod │ ├── go.sum │ ├── install.bat │ ├── main.go │ ├── nssm.sha1.txt │ ├── scripts/ │ │ ├── apps.ps1 │ │ ├── get-icon.ps1 │ │ ├── time-sync.bat │ │ └── update.ps1 │ ├── securekey.go │ └── util.go ├── package.json ├── postcss.config.ts ├── scripts/ │ ├── build.ts │ ├── dev-server.ts │ └── private/ │ └── tsc.ts ├── src/ │ ├── main/ │ │ ├── main.ts │ │ ├── static/ │ │ │ └── .gitkeep │ │ └── tsconfig.json │ ├── renderer/ │ │ ├── App.vue │ │ ├── assets/ │ │ │ └── LICENSE.txt │ │ ├── components/ │ │ │ ├── ConfigCard.vue │ │ │ ├── WBContextMenu.vue │ │ │ └── WBMenuItem.vue │ │ ├── data/ │ │ │ ├── appicons.ts │ │ │ ├── docker.ts │ │ │ ├── internalapps.ts │ │ │ └── podman.ts │ │ ├── directives/ │ │ │ └── autoscroll.ts │ │ ├── index.css │ │ ├── index.html │ │ ├── lib/ │ │ │ ├── config.ts │ │ │ ├── constants.ts │ │ │ ├── containers/ │ │ │ │ ├── common.ts │ │ │ │ ├── container.ts │ │ │ │ ├── docker.ts │ │ │ │ └── podman.ts │ │ │ ├── exec-helper.ts │ │ │ ├── install.ts │ │ │ ├── migrate.ts │ │ │ ├── qmp.ts │ │ │ ├── specs.ts │ │ │ ├── usbmanager.ts │ │ │ └── winboat.ts │ │ ├── main.ts │ │ ├── public/ │ │ │ └── xel/ │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── themes/ │ │ │ │ ├── adwaita-dark.css │ │ │ │ ├── adwaita.css │ │ │ │ ├── base.css │ │ │ │ ├── cupertino-dark.css │ │ │ │ ├── cupertino.css │ │ │ │ ├── fluent-dark.css │ │ │ │ ├── fluent.css │ │ │ │ ├── material-dark.css │ │ │ │ └── material.css │ │ │ └── xel.js │ │ ├── router.ts │ │ ├── tsconfig.json │ │ ├── utils/ │ │ │ ├── bus.ts │ │ │ ├── capitalize.ts │ │ │ ├── debounce.ts │ │ │ ├── getFreeRDP.ts │ │ │ ├── icons.ts │ │ │ ├── interval.ts │ │ │ ├── log.ts │ │ │ ├── openLink.ts │ │ │ └── port.ts │ │ ├── views/ │ │ │ ├── About.vue │ │ │ ├── Apps.vue │ │ │ ├── Blank.vue │ │ │ ├── Config.vue │ │ │ ├── Home.vue │ │ │ ├── Migration.vue │ │ │ └── SetupUI.vue │ │ ├── vite-env.d.ts │ │ └── window.d.ts │ └── types.ts ├── tailwind.config.ts └── vite.config.ts
SYMBOL INDEX (1630 symbols across 37 files)
FILE: guest_server/argon2.go
type Argon2Configuration (line 13) | type Argon2Configuration struct
function parseArgon2Hash (line 22) | func parseArgon2Hash(encodedHash string) (*Argon2Configuration, error) {
function verifyPasswordSecure (line 60) | func verifyPasswordSecure(storedHash, providedPassword string) (bool, er...
FILE: guest_server/main.go
constant AUTHKEY_HASH_REG (line 31) | AUTHKEY_HASH_REG = "WinBoatAuthHash"
constant AUTHKEY_HASH_OEM_LOCATION (line 32) | AUTHKEY_HASH_OEM_LOCATION = "C:\\OEM\\auth.hash"
type Metrics (line 34) | type Metrics struct
type RDPStatusResponse (line 51) | type RDPStatusResponse struct
function getApps (line 55) | func getApps(w http.ResponseWriter, r *http.Request) {
function getHealth (line 67) | func getHealth(w http.ResponseWriter, r *http.Request) {
function getVersion (line 75) | func getVersion(w http.ResponseWriter, r *http.Request) {
function getMetrics (line 86) | func getMetrics(w http.ResponseWriter, r *http.Request) {
function getRdpConnectedStatus (line 130) | func getRdpConnectedStatus(w http.ResponseWriter, r *http.Request) {
function applyUpdate (line 159) | func applyUpdate(w http.ResponseWriter, r *http.Request) {
function getIcon (line 254) | func getIcon(w http.ResponseWriter, r *http.Request) {
function setAuthHash (line 273) | func setAuthHash(w http.ResponseWriter, r *http.Request) {
function main (line 306) | func main() {
FILE: guest_server/securekey.go
constant baseRegistryPath (line 19) | baseRegistryPath = `SOFTWARE\WinBoatSecureStore`
function setSecureRegKey (line 24) | func setSecureRegKey(k string, v string) error {
function getSecureRegKey (line 130) | func getSecureRegKey(k string) (*string, error) {
FILE: guest_server/util.go
function checkErr (line 11) | func checkErr(err error) {
function copyFile (line 18) | func copyFile(src string, dst string) {
FILE: scripts/build.ts
function buildRenderer (line 12) | function buildRenderer() {
function buildMain (line 20) | function buildMain() {
FILE: scripts/dev-server.ts
function startRenderer (line 23) | async function startRenderer() {
function startElectron (line 32) | async function startElectron() {
function restartElectron (line 66) | function restartElectron() {
function copyStaticFiles (line 79) | function copyStaticFiles() {
function copy (line 87) | function copy(path) {
function stop (line 95) | function stop() {
function start (line 100) | async function start() {
FILE: scripts/private/tsc.ts
function compile (line 4) | function compile(directory) {
FILE: src/main/main.ts
constant WINDOW_MIN_WIDTH (line 9) | const WINDOW_MIN_WIDTH = 1280;
constant WINDOW_MIN_HEIGHT (line 10) | const WINDOW_MIN_HEIGHT = 800;
type SchemaType (line 13) | type SchemaType = {
function createWindow (line 57) | function createWindow() {
FILE: src/renderer/data/appicons.ts
constant DEFAULT_ICON (line 3) | const DEFAULT_ICON = "DEFAULT_ICON";
FILE: src/renderer/data/docker.ts
constant DOCKER_DEFAULT_COMPOSE (line 4) | const DOCKER_DEFAULT_COMPOSE: ComposeConfig = {
FILE: src/renderer/data/podman.ts
constant PODMAN_DEFAULT_COMPOSE (line 4) | const PODMAN_DEFAULT_COMPOSE: ComposeConfig = {
FILE: src/renderer/directives/autoscroll.ts
type ScrollOptions (line 4) | interface ScrollOptions {
type AutoScrollElement (line 10) | interface AutoScrollElement extends HTMLElement {
method mounted (line 15) | mounted(el: AutoScrollElement, binding: DirectiveBinding<ScrollOptions>) {
method beforeUnmount (line 48) | beforeUnmount(el: AutoScrollElement): void {
method updated (line 57) | updated(el: AutoScrollElement, binding: DirectiveBinding<ScrollOptions>)...
FILE: src/renderer/lib/config.ts
type RdpArg (line 9) | type RdpArg = {
class WinboatVersion (line 15) | class WinboatVersion {
method constructor (line 21) | constructor(public readonly versionToken: string) {
method toString (line 39) | toString(): string {
method toJSON (line 43) | toJSON(): string {
type WinboatVersionData (line 48) | type WinboatVersionData = {
type MultiMonitorMode (line 53) | enum MultiMonitorMode {
type WinboatConfigObj (line 59) | type WinboatConfigObj = {
class WinboatConfig (line 99) | class WinboatConfig {
method getInstance (line 106) | static getInstance() {
method constructor (line 111) | private constructor() {
method config (line 125) | get config(): WinboatConfigObj {
method config (line 140) | set config(newConfig: WinboatConfigObj) {
method writeConfigObject (line 146) | static writeConfigObject(configObj: WinboatConfigObj): void {
method readConfigObject (line 151) | static readConfigObject(writeDefault = true): WinboatConfigObj | null {
FILE: src/renderer/lib/constants.ts
constant WINBOAT_DIR (line 5) | const WINBOAT_DIR = path.join(os.homedir(), ".winboat");
constant DEFAULT_HOMEBREW_DIR (line 6) | const DEFAULT_HOMEBREW_DIR = path.join(os.homedir(), "../linuxbrew/.linu...
constant WINDOWS_VERSIONS (line 8) | const WINDOWS_VERSIONS = {
type WindowsVersionKey (line 18) | type WindowsVersionKey = keyof typeof WINDOWS_VERSIONS;
constant WINDOWS_LANGUAGES (line 20) | const WINDOWS_LANGUAGES = {
constant GUEST_RDP_PORT (line 57) | const GUEST_RDP_PORT = 3389;
constant GUEST_QMP_PORT (line 58) | const GUEST_QMP_PORT = 7149;
constant DEFAULT_HOST_QMP_PORT (line 59) | const DEFAULT_HOST_QMP_PORT = 8149;
constant USB_CLASS_IMAGING (line 62) | const USB_CLASS_IMAGING = 6;
constant USB_INTERFACE_MTP (line 63) | const USB_INTERFACE_MTP = 5;
constant USB_VID_BLACKLIST (line 64) | const USB_VID_BLACKLIST = [
constant RESTART_UNLESS_STOPPED (line 70) | const RESTART_UNLESS_STOPPED = "unless-stopped";
constant RESTART_ON_FAILURE (line 71) | const RESTART_ON_FAILURE = "on-failure";
constant RESTART_ALWAYS (line 72) | const RESTART_ALWAYS = "always";
constant RESTART_NO (line 73) | const RESTART_NO = "no";
FILE: src/renderer/lib/containers/common.ts
type ContainerRuntimes (line 11) | enum ContainerRuntimes {
type CommonPorts (line 17) | enum CommonPorts {
type ContainerSpecMap (line 29) | type ContainerSpecMap = {
type ContainerSpecs (line 34) | type ContainerSpecs = ContainerSpecMap[ContainerRuntimes];
function getContainerSpecs (line 36) | async function getContainerSpecs<T extends ContainerRuntimes>(type: T): ...
function createContainer (line 40) | function createContainer<T extends ContainerRuntimes>(
function getActiveHostPort (line 47) | function getActiveHostPort(
FILE: src/renderer/lib/containers/container.ts
type ComposeDirection (line 10) | type ComposeDirection = "up" | "down";
type ComposeArguments (line 11) | type ComposeArguments = "--no-start";
type ContainerAction (line 12) | type ContainerAction = "start" | "stop" | "pause" | "unpause" | "restart";
method _getSpecs (line 32) | static async _getSpecs(): Promise<any> {
type ContainerStatus (line 37) | enum ContainerStatus {
FILE: src/renderer/lib/containers/docker.ts
type DockerSpecs (line 20) | type DockerSpecs = {
class DockerContainer (line 27) | class DockerContainer extends ContainerManager {
method constructor (line 34) | constructor() {
method writeCompose (line 38) | writeCompose(compose: ComposeConfig): void {
method compose (line 46) | async compose(direction: ComposeDirection, extraArgs: ComposeArguments...
method container (line 66) | async container(action: ContainerAction): Promise<void> {
method port (line 78) | async port(): Promise<ComposePortEntry[]> {
method remove (line 103) | async remove(): Promise<void> {
method getStatus (line 114) | async getStatus(): Promise<ContainerStatus> {
method exists (line 135) | async exists(): Promise<boolean> {
method containerName (line 149) | get containerName(): string {
method _getSpecs (line 153) | static override async _getSpecs(): Promise<DockerSpecs> {
FILE: src/renderer/lib/containers/podman.ts
type PodmanSpecs (line 21) | type PodmanSpecs = {
type PodmanAPIStatus (line 26) | enum PodmanAPIStatus {
type PodmanInfo (line 31) | type PodmanInfo = {
constant COMPOSE_ENV_VARS (line 47) | const COMPOSE_ENV_VARS = { PODMAN_COMPOSE_PROVIDER: "podman-compose", PO...
class PodmanContainer (line 49) | class PodmanContainer extends ContainerManager {
method constructor (line 56) | constructor() {
method writeCompose (line 60) | writeCompose(compose: ComposeConfig): void {
method compose (line 68) | async compose(direction: ComposeDirection, extraArgs: ComposeArguments...
method container (line 90) | async container(action: ContainerAction): Promise<void> {
method port (line 102) | async port(): Promise<ComposePortEntry[]> {
method remove (line 127) | async remove(): Promise<void> {
method getStatus (line 138) | async getStatus(): Promise<ContainerStatus> {
method exists (line 163) | async exists(): Promise<boolean> {
method containerName (line 177) | get containerName(): string {
method _getSpecs (line 181) | static override async _getSpecs(): Promise<PodmanSpecs> {
FILE: src/renderer/lib/exec-helper.ts
type ExecFileAsyncError (line 4) | type ExecFileAsyncError = {
function stringifyExecFile (line 17) | function stringifyExecFile(file: string, args: string[]): string {
function escapeString (line 25) | function escapeString(str: string): string {
type EnvMap (line 40) | type EnvMap = {
function concatEnv (line 44) | function concatEnv(a: EnvMap, b?: EnvMap) {
FILE: src/renderer/lib/install.ts
type InstallStates (line 17) | enum InstallStates {
type InstallEvents (line 28) | interface InstallEvents {
class InstallManager (line 35) | class InstallManager {
method constructor (line 42) | constructor(conf: InstallConfiguration) {
method changeState (line 50) | changeState(newState: InstallStates) {
method setPreinstallMsg (line 56) | setPreinstallMsg(msg: string) {
method sleep (line 63) | sleep(ms: number) {
method createComposeFile (line 67) | async createComposeFile() {
method createOEMAssets (line 134) | async createOEMAssets() {
method startContainer (line 207) | async startContainer() {
method monitorContainerPreinstall (line 223) | async monitorContainerPreinstall() {
method monitorAPIHealth (line 261) | async monitorAPIHealth() {
method install (line 309) | async install() {
function isInstalled (line 330) | async function isInstalled(): Promise<boolean> {
FILE: src/renderer/lib/migrate.ts
function performAutoMigrations (line 16) | async function performAutoMigrations(): Promise<void> {
function migrateComposePorts_Pre090 (line 45) | async function migrateComposePorts_Pre090(containerManager: ContainerMan...
FILE: src/renderer/lib/qmp.ts
type QMPStatus (line 10) | type QMPStatus = "Connected" | "Closed";
type QMPGreeting (line 12) | type QMPGreeting = {
type QMPCommandInfo (line 26) | type QMPCommandInfo = {
type QMPStatusInfo (line 30) | type QMPStatusInfo = {
type QMPObjectPropertyInfo (line 35) | type QMPObjectPropertyInfo = {
type QMPBlockInfo (line 42) | type QMPBlockInfo = {
type QMPError (line 53) | type QMPError = {
type QMPReturn (line 57) | type QMPReturn<T> = T extends never ? never : { return: T } | QMPError;
type QMPCommandWithArgs (line 59) | type QMPCommandWithArgs = "human-monitor-command" | "device_add" | "devi...
type QMPCommandNoArgs (line 60) | type QMPCommandNoArgs = "qmp_capabilities" | "query-commands" | "query-s...
type QMPCommand (line 61) | type QMPCommand = QMPCommandWithArgs | QMPCommandNoArgs;
type QMPArgumentProps (line 63) | type QMPArgumentProps = {
type QMPArgument (line 75) | type QMPArgument<T extends keyof QMPArgumentProps> =
type QMPCommandExpectedArgument (line 81) | type QMPCommandExpectedArgument<T extends QMPCommand> = T extends "human...
type QMPResponse (line 92) | type QMPResponse<T extends QMPCommand> = QMPReturn<
class QMPManager (line 112) | class QMPManager {
method constructor (line 119) | constructor(socket: Socket) {
method createConnection (line 132) | static async createConnection(host: string, port: number): Promise<QMP...
method executeCommand (line 168) | async executeCommand<C extends QMPCommand>(
method isAlive (line 212) | async isAlive(): Promise<boolean> {
method handleError (line 240) | private static handleError(e: unknown, msg?: string) {}
FILE: src/renderer/lib/specs.ts
function satisfiesPrequisites (line 8) | function satisfiesPrequisites(specs: Specs, containerSpecs?: ContainerSp...
function getSpecs (line 26) | async function getSpecs() {
type MemoryInfo (line 68) | type MemoryInfo = {
function getMemoryInfo (line 73) | async function getMemoryInfo() {
FILE: src/renderer/lib/usbmanager.ts
type LinuxDeviceDatabase (line 13) | type LinuxDeviceDatabase = Record<string, { name: string; devices: Recor...
type DeviceStrings (line 15) | type DeviceStrings = {
type PTSerializableDeviceInfo (line 22) | type PTSerializableDeviceInfo = {
type VidPidHex (line 29) | type VidPidHex = {
class USBManager (line 36) | class USBManager {
method getInstance (line 50) | static getInstance() {
method constructor (line 55) | private constructor() {
method #setupDeviceUpdateListeners (line 69) | #setupDeviceUpdateListeners() {
method #setupGuestListener (line 112) | #setupGuestListener() {
method stringifyDevice (line 144) | stringifyDevice(device: Device): string {
method stringifyPTSerializableDevice (line 194) | stringifyPTSerializableDevice(device: PTSerializableDeviceInfo): string {
method #convertDeviceToPTSerializable (line 208) | #convertDeviceToPTSerializable(device: Device): PTSerializableDeviceIn...
method addDeviceToPassthroughList (line 229) | async addDeviceToPassthroughList(device: Device) {
method removeDeviceFromPassthroughList (line 261) | async removeDeviceFromPassthroughList(ptDevice: PTSerializableDeviceIn...
method isDeviceInPassthroughList (line 282) | isDeviceInPassthroughList(device: Device): boolean {
method isPTDeviceConnected (line 294) | isPTDeviceConnected(ptDevice: PTSerializableDeviceInfo): boolean {
method removeAllPassthroughDevicesAndConfig (line 306) | async removeAllPassthroughDevicesAndConfig() {
method isMTPDevice (line 320) | isMTPDevice(device: PTSerializableDeviceInfo | Device) {
method getDeviceVidPidHex (line 348) | getDeviceVidPidHex(device: PTSerializableDeviceInfo | Device): VidPidH...
method #QMPCheckIfDeviceExists (line 361) | async #QMPCheckIfDeviceExists(vendorId: number, productId: number): Pr...
method #QMPAddDevice (line 380) | async #QMPAddDevice(device: Device) {
method #QMPRemoveDevice (line 410) | async #QMPRemoveDevice(vendorId: number, productId: number) {
function readLinuxDeviceDatabase (line 428) | function readLinuxDeviceDatabase(): LinuxDeviceDatabase {
function getDeviceStringsFromLsusb (line 480) | function getDeviceStringsFromLsusb(vidHex: string, pidHex: string): Devi...
function freeMTPDevice (line 505) | function freeMTPDevice(deviceBus: string) {
FILE: src/renderer/lib/winboat.ts
constant USAGE_PATH (line 36) | const USAGE_PATH = path.join(WINBOAT_DIR, "appUsage.json");
type CustomAppCommands (line 39) | enum CustomAppCommands {
constant QMP_WAIT_MS (line 101) | const QMP_WAIT_MS = 2000;
constant FETCH_TIMEOUT (line 102) | const FETCH_TIMEOUT = 1000;
class AppManager (line 104) | class AppManager {
method constructor (line 109) | constructor() {
method updateAppCache (line 117) | async updateAppCache(apiURL: string, options: { forceRead?: boolean } ...
method getApps (line 132) | async getApps(apiURL: string): Promise<WinApp[]> {
method incrementAppUsage (line 163) | incrementAppUsage(app: WinApp) {
method writeToDisk (line 168) | async writeToDisk() {
method addCustomApp (line 179) | async addCustomApp(name: string, path: string, args: string, icon: str...
method updateCustomApp (line 194) | async updateCustomApp(oldName: string, updatedApp: { Name: string; Pat...
method removeCustomApp (line 215) | async removeCustomApp(app: WinApp) {
class Winboat (line 223) | class Winboat {
method getInstance (line 258) | static getInstance() {
method constructor (line 263) | private constructor() {
method createAPIIntervals (line 290) | async createAPIIntervals() {
method destroyAPIIntervals (line 370) | async destroyAPIIntervals() {
method getHealth (line 409) | async getHealth() {
method getMetrics (line 419) | async getMetrics() {
method getRDPConnectedStatus (line 425) | async getRDPConnectedStatus() {
method readCompose (line 431) | static readCompose(composePath: string): ComposeConfig {
method getCredentials (line 437) | getCredentials() {
method #connectQMPManager (line 445) | async #connectQMPManager() {
method createQMPInterval (line 466) | createQMPInterval() {
method startContainer (line 485) | async startContainer() {
method stopContainer (line 499) | async stopContainer() {
method restartContainer (line 507) | async restartContainer() {
method pauseContainer (line 521) | async pauseContainer() {
method unpauseContainer (line 529) | async unpauseContainer() {
method replaceCompose (line 542) | async replaceCompose(composeConfig: ComposeConfig) {
method resetWinboat (line 581) | async resetWinboat() {
method launchApp (line 619) | async launchApp(app: WinApp) {
method checkVersionAndUpdateGuestServer (line 707) | async checkVersionAndUpdateGuestServer() {
method hasQMPInterval (line 802) | get hasQMPInterval() {
method apiUrl (line 806) | get apiUrl(): string | undefined {
FILE: src/renderer/public/xel/xel.js
method get (line 1) | get(){return this.sourceCapabilities.firesTouchEvents?"touch":"mouse"}
method get (line 1) | get(){return new Promise((t=>{"finished"===this.playState?t():this.addEv...
method didTimeout (line 1) | get didTimeout(){return!e.timeout&&performance.now()-s-1>i}
function E (line 1) | function E(t){return function(e){for(var i=arguments.length,s=new Array(...
function $ (line 1) | function $(t,s){let n=arguments.length>2&&void 0!==arguments[2]?argument...
function S (line 1) | function S(t){for(let e=0;e<t.length;e++){k(t,e)||(t[e]=null)}return t}
function M (line 1) | function M(e){const i=o(null);for(const[s,n]of t(e)){k(e,s)&&(Array.isAr...
function L (line 1) | function L(t,e){for(;null!==t;){const i=n(t,e);if(i){if(i.get)return E(i...
function Ee (line 1) | function Ee(t,e,i){d(t,(t=>{t.call(s,e,i,pe)}))}
class at (line 1) | class at{#t={};addEventListener(t,e){this.#t||(this.#t={});let i=this.#t...
method addEventListener (line 1) | addEventListener(t,e){this.#t||(this.#t={});let i=this.#t[t];i||(this....
method removeEventListener (line 1) | removeEventListener(t,e){if(this.#t&&this.#t[t]){for(var i=[],s=0;s<th...
method dispatchEvent (line 1) | dispatchEvent(t){if(!this.#t)return;let e=this.#t[t.type];if(!e)return...
function ot (line 1) | function ot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}
function lt (line 1) | function lt(t,e,i=[0,0,0]){const s=ot(t,e[0]),n=ot(t,e[1]),a=ot(t,e[2]);...
function ht (line 1) | function ht(t){return"string"===dt(t)}
function dt (line 1) | function dt(t){return(Object.prototype.toString.call(t).match(/^\[object...
function ct (line 1) | function ct(t,{precision:e=16,unit:i}){return ut(t)?"none":(t=+mt(t,e))+...
function ut (line 1) | function ut(t){return null===t}
function pt (line 1) | function pt(t){return ut(t)?0:t}
function mt (line 1) | function mt(t,e){if(0===t)return 0;let i=~~t,s=0;i&&e&&(s=1+~~Math.log10...
function bt (line 1) | function bt(t,e,i){return isNaN(t)?e:isNaN(e)?t:t+(e-t)*i}
function gt (line 1) | function gt(t,e,i){return!t||!e||t===e||t[0]===e[0]&&t[1]===e[1]||isNaN(...
function ft (line 1) | function ft(t,e,i){return Math.max(Math.min(i,e),t)}
function xt (line 1) | function xt(t,e){return Math.sign(t)===Math.sign(e)?t:-t}
function wt (line 1) | function wt(t,e){return xt(Math.abs(t)**e,t)}
function vt (line 1) | function vt(t,e){return 0===e?0:t/e}
function kt (line 1) | function kt(t,e){if(t instanceof e)return!0;const i=e.name;for(;t;){cons...
class yt (line 1) | class yt{type;coordMeta;coordRange;range;constructor(t,e){if("object"==t...
method constructor (line 1) | constructor(t,e){if("object"==typeof t&&(this.coordMeta=t),e&&(this.co...
method computedRange (line 1) | get computedRange(){return this.range?this.range:"<percentage>"===this...
method unit (line 1) | get unit(){return"<percentage>"===this.type?"%":"<angle>"===this.type?...
method resolve (line 1) | resolve(t){if("<angle>"===this.type)return t;let e=this.computedRange,...
method serialize (line 1) | serialize(t,e){let i="<percentage>"===this.type?this.percentageRange(1...
method toString (line 1) | toString(){let t=this.type;if(this.range){let[e="",i=""]=this.range;t+...
method percentageRange (line 1) | percentageRange(t=1){let e;return e=this.coordMeta&&this.coordMeta.ran...
method get (line 1) | static get(t,...e){return kt(t,this)?t:new this(t,...e)}
class zt (line 1) | class zt{type;name;spaceCoords;coords;constructor(t,e=t.space){t[Ct]=thi...
method constructor (line 1) | constructor(t,e=t.space){t[Ct]=this,this.type="function",this.name="co...
method serializeCoords (line 1) | serializeCoords(t,e,i){return i=t.map(((t,e)=>yt.get(i?.[e]??this.coor...
method coerceCoords (line 1) | coerceCoords(t,e){return Object.entries(this.space.coords).map((([i,s]...
method canSerialize (line 1) | canSerialize(){return"function"===this.type||this.serialize}
method get (line 1) | static get(t,...e){return!t||kt(t,this)?t:t[Ct]?t[Ct]:new zt(t,...e)}
method add (line 1) | add(t,e,i){if("string"==typeof arguments[0])(Array.isArray(t)?t:[t]).for...
method run (line 1) | run(t,e){this[t]=this[t]||[],this[t].forEach((function(t){t.call(e&&e.co...
function St (line 1) | function St(t){return Array.isArray(t)?t:$t[t]}
function Mt (line 1) | function Mt(t,e,i,s={}){if(t=St(t),e=St(e),!t||!e)throw new TypeError(`M...
function At (line 1) | function At(t,e){let i,s={str:String(t)?.trim(),options:e};if(Et.run("pa...
function Tt (line 1) | function Tt(t,e){if(Array.isArray(t))return t.map((t=>Tt(t,e)));if(!t)th...
class Dt (line 1) | class Dt{constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?D...
method constructor (line 1) | constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?Dt.get(t...
method inGamut (line 1) | inGamut(t,{epsilon:e=75e-6}={}){if(!this.equals(this.gamutSpace))retur...
method isUnbounded (line 1) | get isUnbounded(){return Object.values(this.coords).every((t=>!("range...
method cssId (line 1) | get cssId(){return this.formats?.color?.id||this.id}
method isPolar (line 1) | get isPolar(){for(let t in this.coords)if("angle"===this.coords[t].typ...
method getFormat (line 1) | getFormat(t){if(!t)return null;"default"===t?t=Object.values(this.form...
method equals (line 1) | equals(t){return!!t&&(this===t||this.id===t||this.id===t.id)}
method to (line 1) | to(t,e){if(1===arguments.length){const i=Tt(t);[t,e]=[i.space,i.coords...
method from (line 1) | from(t,e){if(1===arguments.length){const i=Tt(t);[t,e]=[i.space,i.coor...
method toString (line 1) | toString(){return`${this.name} (${this.id})`}
method getMinCoords (line 1) | getMinCoords(){let t=[];for(let e in this.coords){let i=this.coords[e]...
method all (line 1) | static get all(){return[...new Set(Object.values(Dt.registry))]}
method register (line 1) | static register(t,e){if(1===arguments.length&&(t=(e=arguments[0]).id),...
method get (line 1) | static get(t,...e){if(!t||kt(t,this))return t;if("string"===dt(t)){let...
method findFormat (line 1) | static findFormat(t,e=Dt.all){if(!t)return null;"string"==typeof t&&(t...
method resolveCoord (line 1) | static resolveCoord(t,e){let i,s,n=dt(t);if("string"===n?t.includes("....
function Bt (line 1) | function Bt(t){let e=[t];for(let i=t;i=i.base;)e.push(i);return e}
method fromBase (line 1) | fromBase(t){let e=t.map(((t,e)=>t/Ft[e])).map((t=>t>Ht?Math.cbrt(t):(Nt*...
method toBase (line 1) | toBase(t){let[e,i,s]=t,n=[];return n[1]=(e+16)/116,n[0]=i/500+n[1],n[2]=...
function Xt (line 1) | function Xt(t){return"number"!=typeof t?t:(t%360+360)%360}
method fromBase (line 1) | fromBase(t){if(void 0===this.ε){let t=Object.values(this.base.coords)[1]...
method toBase (line 1) | toBase(t){let[e,i,s]=t,n=null,a=null;return ut(s)||(i=i<0?0:i,n=i*Math.c...
function qt (line 1) | function qt(t){const e=t*t;return e*e*e*t}
function Wt (line 1) | function Wt(t,e,{kL:i=1,kC:s=1,kH:n=1}={}){[t,e]=Tt([t,e]);let[a,r,o]=Gt...
method fromBase (line 1) | fromBase(t){let e=lt(t,Kt);return e[0]=Math.cbrt(e[0]),e[1]=Math.cbrt(e[...
method toBase (line 1) | toBase(t){let e=lt(t,te);return e[0]=e[0]**3,e[1]=e[1]**3,e[2]=e[2]**3,l...
function ie (line 1) | function ie(t,e){[t,e]=Tt([t,e]);let[i,s,n]=ee.from(t),[a,r,o]=ee.from(e...
function se (line 1) | function se(t,e,{epsilon:i=75e-6}={}){t=Tt(t),e||(e=t.space),e=Dt.get(e)...
function ne (line 1) | function ne(t,e){t=Tt(t);let i,s=Dt.get(e,e?.space),n=e?.precision;retur...
function ae (line 1) | function ae(t,e){if(t=Tt(t),"alpha"===e)return t.alpha??1;let{space:i,in...
function re (line 1) | function re(t,e,i,s){return t=Tt(t),Array.isArray(e)&&([e,i,s]=[t.space,...
function oe (line 1) | function oe(t,e,i){if(t=Tt(t),2===arguments.length&&"object"===dt(argume...
function le (line 1) | function le(t){return{space:t.space,coords:t.coords.slice(),alpha:t.alpha}}
method fromBase (line 1) | fromBase(t){let[e,i,s]=t,n=lt([ce*e-(ce-1)*s,ue*i-(ue-1)*e,s],ye).map((f...
method toBase (line 1) | toBase(t){let[e,i,s]=t,n=lt([(e+ke)/(1+ve-ve*(e+ke)),i,s],Ee).map((funct...
method toBase (line 1) | toBase(t){let e=function(t){let e=lt(t,Oe),i=e.map((function(t){return 1...
function We (line 1) | function We(t,e){return t.map((t=>{const i=wt(e*Math.abs(t)*.01,.42);ret...
function Ke (line 1) | function Ke(t,e,i,s,n){const a={};a.discounting=n,a.refWhite=t,a.surroun...
function Qe (line 1) | function Qe(t,e){if(!(void 0!==t.J^void 0!==t.Q))throw new Error("Conver...
function ti (line 1) | function ti(t,e){const i=We(lt(t.map((t=>100*t)),Xe).map(((t,i)=>t*e.dRg...
method fromBase (line 1) | fromBase(t){const e=ti(t,Je);return[e.J,e.M,e.h]}
function si (line 1) | function si(t){return t>8?Math.pow((t+16)/116,3):t/ii}
function ni (line 1) | function ni(t,e){const i=116*((s=t[1])>ei?Math.cbrt(s):(ii*s+16)/116)-16...
function hi (line 1) | function hi(t){t[1]<0&&(t=ri.fromBase(ri.toBase(t)));const e=Math.log(Ma...
function ui (line 1) | function ui(t,{method:e=Lt.gamut_mapping,space:i,deltaEMethod:s="",jnd:n...
function mi (line 1) | function mi(t,e,{inGamut:i}={}){t=Tt(t);let s=(e=Dt.get(e)).from(t),n={s...
function bi (line 1) | function bi(t,e={}){let i,{precision:s=Lt.precision,format:n,inGamut:a=!...
class Si (line 1) | class Si extends Dt{constructor(t){t.coords||(t.coords={r:{range:[0,1],n...
method constructor (line 1) | constructor(t){t.coords||(t.coords={r:{range:[0,1],name:"Red"},g:{rang...
method parse (line 1) | parse(t){t.length<=5&&(t=t.replace(/[a-f0-9]/gi,"$&$&"));let e=[];return...
method parse (line 1) | parse(t){let e={spaceId:"srgb",coords:null,alpha:1};if("transparent"===(...
function n (line 1) | function n(t){let n=(t+e/30)%12,a=i*Math.min(s,1-s);return s-a*Math.max(...
function Oi (line 1) | function Oi(t){let[e,i,s]=ne(t,It),n=e+15*i+3*s;return[4*e/n,9*i/n]}
method fromBase (line 1) | fromBase(t){let e=[pt(t[0]),pt(t[1]),pt(t[2])],i=e[1],[s,n]=Oi({space:It...
method toBase (line 1) | toBase(t){let[e,i,s]=t;if(0===e||ut(e))return[0,0,0];i=pt(i),s=pt(s);let...
function is (line 1) | function is(t,e,i){const s=e/(Math.sin(i)-t*Math.cos(i));return s<0?Infi...
function ss (line 1) | function ss(t){const e=Math.pow(t+16,3)/1560896,i=e>Zi?e:t/Ui,s=i*(28451...
function ns (line 1) | function ns(t,e){const i=e/360*Math.PI*2,s=is(t.r0s,t.r0i,i),n=is(t.r1s,...
method fromBase (line 1) | fromBase(t){let e,[i,s,n]=[pt(t[0]),pt(t[1]),pt(t[2])];if(i>99.9999999)e...
method toBase (line 1) | toBase(t){let e,[i,s,n]=[pt(t[0]),pt(t[1]),pt(t[2])];if(n>99.9999999)n=1...
method fromBase (line 1) | fromBase(t){let e=Math.max(...t),i=Math.min(...t),[s,n,a]=t,[r,o,l]=[nul...
method toBase (line 1) | toBase(t){let[e,i,s]=t;function n(t){let n=(t+e/60)%6;return s-s*i*Math....
method fromBase (line 1) | fromBase(t){let[e,i,s]=t;return[e,s*(100-i)/100,100-s]}
method toBase (line 1) | toBase(t){let[e,i,s]=t;i/=100,s/=100;let n=i+s;if(n>=1){return[e,0,100*(...
function bs (line 1) | function bs(t,e){let i=t.length;if(i!==e.length)throw new Error(`Vectors...
function gs (line 1) | function gs(t){return.5*(ms*t-us+Math.sqrt((ms*t-us)*(ms*t-us)+.12*ms*t))}
function fs (line 1) | function fs(t){return(t**2+us*t)/(ms*(t+ps))}
function xs (line 1) | function xs(t){let[e,i]=t;return[i/e,i/(1-e)]}
function ws (line 1) | function ws(t,e){let i=lt(t,te);return i[0]=i[0]**3,i[1]=i[1]**3,i[2]=i[...
function vs (line 1) | function vs(t,e,i,s){let n=function(t,e,i,s){let n,a,r,o,l,h,d,c;bs(s[0]...
function ks (line 1) | function ks(t,e,i){let[s,n,a]=t,r=vs(n,a,e,i),o=function(t,e,i,s,n,a,r,o...
class Zs (line 1) | class Zs{constructor(t){this.value=t}valueOf(){return this.value}}
method constructor (line 1) | constructor(t){this.value=t}
method valueOf (line 1) | valueOf(){return this.value}
class Us (line 1) | class Us extends Zs{constructor(t="???"){super(t)}toString(t){return`{${...
method constructor (line 1) | constructor(t="???"){super(t)}
method toString (line 1) | toString(t){return`{${this.value}}`}
class Ys (line 1) | class Ys extends Zs{constructor(t,e={}){super(t),this.opts=e}toString(t)...
method constructor (line 1) | constructor(t,e={}){super(t),this.opts=e}
method toString (line 1) | toString(t){try{return t.memoizeIntlObject(Intl.NumberFormat,this.opts...
class Vs (line 1) | class Vs extends Zs{constructor(t,e={}){super(t),this.opts=e}toString(t)...
method constructor (line 1) | constructor(t,e={}){super(t),this.opts=e}
method toString (line 1) | toString(t){try{return t.memoizeIntlObject(Intl.DateTimeFormat,this.op...
function qs (line 1) | function qs(t,e,i){if(i===e)return!0;if(i instanceof Ys&&e instanceof Ys...
function Ws (line 1) | function Ws(t,e,i){return e[i]?tn(t,e[i].value):(t.reportError(new Range...
function Ks (line 1) | function Ks(t,e){const i=[],s=Object.create(null);for(const n of e)"narg...
function Js (line 1) | function Js(t,e){switch(e.type){case"str":return e.value;case"num":retur...
function Qs (line 1) | function Qs(t,e){if(t.dirty.has(e))return t.reportError(new RangeError("...
function tn (line 1) | function tn(t,e){return"string"==typeof e?t.bundle.L(e):Qs(t,e)}
class en (line 1) | class en{constructor(t,e,i){this.dirty=new WeakSet,this.params=null,this...
method constructor (line 1) | constructor(t,e,i){this.dirty=new WeakSet,this.params=null,this.placea...
method reportError (line 1) | reportError(t){if(!(this.errors&&t instanceof Error))throw t;this.erro...
method memoizeIntlObject (line 1) | memoizeIntlObject(t,e){let i=this.bundle.A.get(t);i||(i={},this.bundle...
function sn (line 1) | function sn(t,e){const i=Object.create(null);for(const[s,n]of Object.ent...
function an (line 1) | function an(t,e){let i=t[0];if(i instanceof Us)return new Us(`NUMBER(${i...
function on (line 1) | function on(t,e){let i=t[0];if(i instanceof Us)return new Us(`DATETIME($...
class hn (line 1) | class hn{constructor(t,{functions:e,useIsolating:i=!0,transform:s=t=>t}=...
method constructor (line 1) | constructor(t,{functions:e,useIsolating:i=!0,transform:s=t=>t}={}){thi...
method hasMessage (line 1) | hasMessage(t){return this.p.has(t)}
method getMessage (line 1) | getMessage(t){return this.p.get(t)}
method addResource (line 1) | addResource(t,{allowOverrides:e=!1}={}){const i=[];for(let s=0;s<t.bod...
method formatPattern (line 1) | formatPattern(t,e=null,i=null){if("string"==typeof t)return this.L(t);...
class Dn (line 1) | class Dn{constructor(t){this.body=[],dn.lastIndex=0;let e=0;for(;;){let ...
method constructor (line 1) | constructor(t){this.body=[],dn.lastIndex=0;let e=0;for(;;){let i=dn.ex...
class Bn (line 1) | class Bn{constructor(t,e){this.value=t,this.length=e}}
method constructor (line 1) | constructor(t,e){this.value=t,this.length=e}
method theme (line 1) | get theme(){return this.#e}
method theme (line 1) | set theme(t){let e=document.head.querySelector(':scope > meta[name="xel-...
method icons (line 1) | get icons(){return[...this.#i]}
method icons (line 1) | set icons(t){let e=document.head.querySelector(':scope > meta[name="xel-...
method locales (line 1) | get locales(){return[...this.#s]}
method locales (line 1) | set locales(t){let e=document.head.querySelector(':scope > meta[name="xe...
method locale (line 1) | get locale(){return this.#n[0]||"en"}
method accentColor (line 1) | get accentColor(){return this.#a}
method accentColor (line 1) | set accentColor(t){let e=document.head.querySelector(':scope > meta[name...
method configStorage (line 1) | get configStorage(){return this.#r}
method configStorage (line 1) | set configStorage(t){this.#r=t}
method whenThemeReady (line 1) | get whenThemeReady(){return new Promise((t=>{null===this.#o?t():this.#o....
method whenIconsReady (line 1) | get whenIconsReady(){return new Promise((t=>{null===this.#l?t():this.#l....
method whenLocalesReady (line 1) | get whenLocalesReady(){return new Promise((t=>{null===this.#h?t():this.#...
method themeStyleSheet (line 1) | get themeStyleSheet(){return this.#d}
method presetAccentColors (line 1) | get presetAccentColors(){let t={};for(let e of this.#d.cssRules)if(1===e...
method autocapitalize (line 1) | get autocapitalize(){return this.#c}
method queryIcon (line 1) | queryIcon(t){t=!1===t.startsWith("#")?"#"+t:t;let e=null;for(let i of th...
method queryMessage (line 1) | queryMessage(t,e={}){t=t.startsWith("#")?t.substring(1):t;let[i,s]=t.spl...
method getConfig (line 1) | getConfig(t,e=null){let i=this.#r.getItem(t);return null===i?e:JSON.pars...
method setConfig (line 1) | setConfig(t,e){let i=this.#r.getItem(t);null===e?delete this.#r[t]:this....
method clearConfig (line 1) | clearConfig(){if(this.#r.length>0){let t=Object.keys(this.#r);this.#r.cl...
method constructor (line 1) | constructor(){super(),document.adoptedStyleSheets=[this.#d];let{theme:t,...
method #x (line 1) | #x(t){let e=this.#e,i=this.#a,s=this.#i,n=this.#s,{theme:a,accentColor:r...
method #w (line 1) | #w(t){if(t.storageArea===this.#r){let e=t.key,i=null===t.newValue?null:J...
method #k (line 1) | #k(t){return new Promise((async e=>{let i=await fetch(t),s=await i.text(...
method #b (line 1) | #b(t){return new Promise((async e=>{null===this.#o&&(this.#o=[]);let i=a...
method #g (line 1) | #g(t){return new Promise((async e=>{null===this.#l&&(this.#l=[]),this.#u...
method #f (line 1) | #f(t){return new Promise((async e=>{null===this.#h&&(this.#h=[]);let i=t...
method #C (line 1) | #C(){if(this.#p?.locales[0]?.startsWith("en")){let t=getComputedStyle(do...
method #v (line 1) | async#v(){await this.whenThemeReady;let t=this.#a||this.presetAccentColo...
method #m (line 1) | #m(){let t=document.head.querySelector(':scope > meta[name="xel-theme"]'...
method #y (line 1) | #y(t){let e=[],i=-1;for(;;){let s=t.indexOf("@import",i);if(!(s>-1))brea...
method iconsets (line 1) | get iconsets(){return console.warn('"Xel.iconsets" has been deprecated i...
method iconsets (line 1) | set iconsets(t){console.warn('"Xel.iconsets" has been deprecated in Xel ...
method whenIconsetsReady (line 1) | get whenIconsetsReady(){return console.warn('"Xel.whenIconsetsReady" has...
method open (line 1) | get open(){return this.hasAttribute("open")}
method showModal (line 1) | showModal(){return new Promise((async t=>{if(!0!==this.open&&!1!==this.i...
method close (line 1) | close(){return new Promise((async t=>{if(this.R&&await this.R.finished,t...
class Jn (line 1) | class Jn extends HTMLElement{static#z=Ns`<template><div id="main"><div i...
method expanded (line 2) | get expanded(){return this.hasAttribute("expanded")}
method expanded (line 2) | set expanded(t){t?this.setAttribute("expanded",""):this.removeAttribut...
method disabled (line 2) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 2) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 2) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 2) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 2) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 2) | async connectedCallback(){await Gn.whenThemeReady,this.#M=new ResizeOb...
method disconnectedCallback (line 2) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R),t...
method expand (line 2) | expand(t=!0){return new Promise((async e=>{if(!1===this.expanded)if(!1...
method collapse (line 2) | collapse(t=!0){return new Promise((async e=>{if(!0===this.expanded)if(...
method #H (line 2) | #H(){this.#A.length>0&&(this.#A.map((t=>t.finish())),this.#A=[])}
method #O (line 2) | #O(){let t=this.querySelector(":scope > header");t?this["#arrow"].styl...
method #I (line 2) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
method #B (line 2) | #B(){let t=this.querySelector(":scope > header");t!==this.#S&&(null===...
method #D (line 2) | #D(){this.#O()}
method #T (line 2) | #T(t){"Enter"!==t.code&&"NumpadEnter"!==t.code||this.querySelector("he...
method #P (line 2) | #P(t){let e=this.querySelector("header"),i=t.target.closest("[tabindex...
class Qn (line 2) | class Qn extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method size (line 3) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 3) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 3) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
class ta (line 3) | class ta extends HTMLElement{static#E=Fs`:host{display:block;position:fi...
method ownerElement (line 4) | get ownerElement(){return this.#j?this.#j:document.body.firstElementCh...
method ownerElement (line 4) | set ownerElement(t){this.#j=t}
method constructor (line 4) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 4) | connectedCallback(){this.addEventListener("wheel",this.#N=t=>t.prevent...
method disconnectedCallback (line 4) | disconnectedCallback(){this.removeEventListener("wheel",this.#N)}
method show (line 4) | show(t=!0){this.title="",this.style.top="0px",this.style.left="0px",th...
method hide (line 4) | hide(t=!0){if(t){let t=this.animate({opacity:["1","0"]},{duration:100,...
class ea (line 4) | class ea extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method vertical (line 5) | get vertical(){return this.hasAttribute("vertical")}
method vertical (line 5) | set vertical(t){t?this.setAttribute("vertical",""):this.removeAttribut...
method constructor (line 5) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
class ia (line 5) | class ia extends HTMLElement{static observedAttributes=["disabled","skin...
method value (line 6) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 6) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
method toggled (line 6) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 6) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method togglable (line 6) | get togglable(){return this.hasAttribute("togglable")}
method togglable (line 6) | set togglable(t){t?this.setAttribute("togglable",""):this.removeAttrib...
method mixed (line 6) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 6) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 6) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 6) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method condensed (line 6) | get condensed(){return this.hasAttribute("condensed")}
method condensed (line 6) | set condensed(t){t?this.setAttribute("condensed",""):this.removeAttrib...
method skin (line 6) | get skin(){return this.hasAttribute("skin")?this.getAttribute("skin"):...
method skin (line 6) | set skin(t){this.setAttribute("skin",t)}
method size (line 6) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 6) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method expanded (line 6) | get expanded(){return this.hasAttribute("expanded")}
method expandable (line 6) | get expandable(){return this.#F()||this.#G()}
method ownerButtons (line 6) | get ownerButtons(){if(this.parentElement){if("x-buttons"===this.parent...
method constructor (line 6) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 6) | connectedCallback(){this.parentElement&&"a"===this.parentElement.local...
method disconnectedCallback (line 6) | disconnectedCallback(){this.#_=!1}
method attributeChangedCallback (line 6) | attributeChangedCallback(t,e,i){e!==i&&!1!==this.isConnected&&("disabl...
method expand (line 6) | expand(){return new Promise((async t=>{this.#F()?await this.#tt():this...
method collapse (line 6) | collapse(t=null){return new Promise((async e=>{this.#it()?await this.#...
method #tt (line 6) | #tt(){return new Promise((async t=>{if(this.#F()){let t=this.querySele...
method #st (line 6) | #st(t=null){return new Promise((async e=>{if(this.#it()){let e=this.qu...
method #F (line 6) | #F(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope ...
method #it (line 6) | #it(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
method #et (line 6) | #et(){return new Promise((async t=>{if(this.#G()){let t=this.querySele...
method #at (line 6) | #at(t=null){return new Promise((async e=>{if(this.#nt()){let e=this.qu...
method #G (line 6) | #G(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope ...
method #nt (line 6) | #nt(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
method #rt (line 6) | #rt(){return new Promise((t=>{if(this.#ot()){this.querySelector(":scop...
method #ot (line 6) | #ot(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
method #lt (line 6) | #lt(){return new Promise((t=>{if(this.#ht()){this.querySelector(":scop...
method #ht (line 6) | #ht(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
method #dt (line 6) | #dt(){return new Promise((t=>{if(this.#ct()){this.querySelector(":scop...
method #ct (line 6) | #ct(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
method #J (line 6) | #J(){this.setAttribute("role","button"),this.setAttribute("aria-disabl...
method #Q (line 6) | #Q(){!1===this.hasAttribute("skin")&&this.setAttribute("skin","normal")}
method #Y (line 6) | #Y(t){let e=this.querySelector(":scope > x-menu[opened]"),i=this.query...
method #K (line 6) | #K(t){t.target.parentElement===this&&["x-menu","x-popover"].includes(t...
method #V (line 6) | #V(){let t=this.querySelector(":scope > x-tooltip");if(t&&!1===t.disab...
method #q (line 6) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close(),this....
method #P (line 6) | #P(t){let e=this.querySelector(":scope > x-menu[opened]"),i=this.query...
method #ut (line 6) | #ut(t){this.collapse()}
method #pt (line 6) | async#pt(t){if(t.buttons>1)t.preventDefault();else if(this.querySelect...
method #bt (line 6) | async#bt(t){let e=this.querySelector(":scope > x-menu, :scope > x-popo...
method #mt (line 6) | #mt(t){let e=t.target.closest("x-menuitem");this.querySelector(":scope...
method #W (line 6) | #W(t){!1===t.defaultPrevented&&("Enter"===t.code||"NumpadEnter"===t.co...
class na (line 6) | class na extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method tracking (line 7) | get tracking(){return this.hasAttribute("tracking")?parseInt(this.getA...
method tracking (line 7) | set tracking(t){this.setAttribute("tracking",t)}
method vertical (line 7) | get vertical(){return this.hasAttribute("vertical")}
method vertical (line 7) | set vertical(t){!0===t?this.setAttribute("vertical",""):this.removeAtt...
method value (line 7) | get value(){if(2===this.tracking||3===this.tracking){return this.#gt()...
method value (line 7) | set value(t){if(2===this.tracking||3===this.tracking){let e=this.#gt()...
method constructor (line 7) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 7) | connectedCallback(){for(let t of this.children)if("x-button"===t.local...
method #gt (line 7) | #gt(){return[...this.querySelectorAll(":scope > x-button, :scope > x-b...
method #P (line 7) | #P(t){if(t.buttons>1)return;let e=t.target.closest("x-button");if(e&&!...
method #W (line 7) | #W(t){if("ArrowRight"===t.code){let t=[...this.children].find((t=>t.ma...
class aa (line 7) | class aa extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method constructor (line 8) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
class ra (line 8) | class ra extends HTMLElement{static observedAttributes=["toggled","mixed...
method value (line 9) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 9) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
method toggled (line 9) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 9) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method mixed (line 9) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 9) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 9) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 9) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 9) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 9) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 9) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 9) | async connectedCallback(){Gn.addEventListener("themechange",this.#R=()...
method disconnectedCallback (line 9) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
method attributeChangedCallback (line 9) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t?this.#xt():"mixe...
method #ft (line 9) | #ft(){let t=getComputedStyle(this["#indicator"]).getPropertyValue("--p...
method #J (line 9) | #J(){this.setAttribute("role","checkbox"),this.setAttribute("aria-chec...
method #xt (line 9) | #xt(){this.#ft(),this.setAttribute("aria-toggled",this.mixed?"mixed":t...
method #wt (line 9) | #wt(){this.#ft()}
method #vt (line 9) | #vt(){this.#J()}
method #Y (line 9) | #Y(t){if(t.buttons>1)t.preventDefault();else if(!1===this.matches(":fo...
method #V (line 9) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
method #q (line 9) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
method #P (line 9) | async#P(t){this.mixed?this.mixed=!1:this.toggled=!this.toggled,this.di...
method #W (line 9) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
class oa (line 9) | class oa extends HTMLElement{static observedAttributes=["value","space",...
method value (line 10) | get value(){return this.#kt}
method value (line 10) | set value(t){t=Is(mi(At(t),this.space),this.#yt),this.#kt===t||this.ma...
method space (line 10) | get space(){return this.hasAttribute("space")?this.getAttribute("space...
method space (line 10) | set space(t){this.setAttribute("space",t)}
method alpha (line 10) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 10) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method required (line 10) | get required(){return this.hasAttribute("required")}
method required (line 10) | set required(t){t?this.setAttribute("required",""):this.removeAttribut...
method mixed (line 10) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 10) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 10) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 10) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 10) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 10) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method empty (line 10) | get empty(){return this.hasAttribute("empty")}
method error (line 10) | get error(){return this.hasAttribute("error")}
method constructor (line 10) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
method connectedCallback (line 10) | connectedCallback(){this.#yt=Gn.getConfig(`x-colorinput:${this.space}F...
method disconnectedCallback (line 10) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)...
method attributeChangedCallback (line 10) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"space"...
method selectAll (line 10) | selectAll(){this["#input"].select()}
method clear (line 10) | clear(){this.value="",this.#Et=null,this.#Yt()}
method reportValidity (line 10) | reportValidity(){let t=this["#input"].value;return this.required&&0===...
method #Vt (line 10) | async#Vt(){if(!1===this.#qt())return;let t=this["#format-menu"];window...
method #Wt (line 10) | async#Wt(t=null){if(!1===this.#Kt())return;let e=this["#format-menu"];...
method #qt (line 10) | #qt(){if(this.disabled)return!1;{let t=this["#format-menu"];return t.q...
method #Kt (line 10) | #Kt(){if(this.disabled)return!1;{let t=this["#format-menu"];return t.q...
method #Jt (line 10) | #Jt(t="increment",e=1){let{value:i}=this["#input"],s=this.#Qt();if(s){...
method #te (line 10) | #te(){let{value:t,selectionStart:e,selectionEnd:i}=this["#input"],s=["...
method #Qt (line 10) | #Qt(){let{value:t,selectionStart:e,selectionEnd:i}=this["#input"],s=["...
method #ee (line 10) | #ee(){let t,e=this["#input"].value;try{t=At(e)}catch(i){t=At("#"+e)}re...
method #Gt (line 10) | #Gt(t){let e="color";return"srbg"===t?e="hex":"oklch"===t?e="oklch":"o...
method #_t (line 10) | #_t(t){let{key:e,value:i,origin:s}=t.detail;e===`x-colorinput:${this.s...
method #Ut (line 10) | #Ut(){this.#yt=Gn.getConfig(`x-colorinput:${this.space}Format`,this.#G...
method #Zt (line 10) | #Zt(){this.value=this.hasAttribute("value")?this.getAttribute("value")...
method #vt (line 10) | #vt(){this["#input"].disabled=this.disabled,this.#J()}
method #P (line 10) | #P(t){if(2===t.detail){let t=this.#Qt(),e=this.#te();if(t){let[e,i]=t;...
method #At (line 10) | #At(t){this.#Wt()}
method #V (line 10) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
method #q (line 10) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
method #Rt (line 10) | #Rt(){this.#Yt(),this.dispatchEvent(new CustomEvent("textinputmodestar...
method #Pt (line 10) | #Pt(){this.dispatchEvent(new CustomEvent("textinputmodeend",{bubbles:!...
method #W (line 10) | #W(t){if("Enter"===t.code||"NumpadEnter"===t.code){if(t.preventDefault...
method #Dt (line 10) | #Dt(){if(this.reportValidity(),null===this.#Et){let t=this.#ee();t!==t...
method #Tt (line 10) | #Tt(t){this.#Et&&this.reportValidity(),t.stopPropagation(),this.#zt(),...
method #Bt (line 10) | #Bt(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0}))}
method #It (line 10) | #It(t){!1===this["#input"].matches(":focus")&&(t.preventDefault(),this...
method #Ot (line 10) | #Ot(){this["#input"].selectionStart===this["#input"].selectionEnd&&thi...
method #Ht (line 10) | #Ht(t){this.#X=this.matches(":focus")}
method #jt (line 10) | #jt(t){this.#Vt()}
method #Ft (line 10) | #Ft(t){let e=t.target.closest("x-menuitem");if(e){if(!1===e.toggled){f...
method #Nt (line 10) | #Nt(t){t.preventDefault()}
method #Xt (line 10) | #Xt(){this.#Ct(),this.#I(),this.#zt(),this.#J()}
method #Ct (line 10) | #Ct(){let t=At(this.#kt);!1===this.alpha&&(t.alpha=1);let e=Is(mi(t,th...
method #I (line 10) | #I(){Gn.whenThemeReady.then((()=>{let t=getComputedStyle(this["#arrow"...
method #Yt (line 10) | #Yt(){let t=this.#Et;t?this.setAttribute("error",""):this.removeAttrib...
method #zt (line 10) | #zt(){0===this.value.length?this.setAttribute("empty",""):this.removeA...
method #J (line 10) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
class wa (line 10) | class wa extends HTMLElement{static observedAttributes=["value","alpha",...
method value (line 11) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 11) | set value(t){this.setAttribute("value",t)}
method alpha (line 11) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 11) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method spaces (line 11) | get spaces(){return this.hasAttribute("spaces")?this.getAttribute("spa...
method spaces (line 11) | set spaces(t){this.setAttribute("spaces",t.join(" "))}
method disabled (line 11) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 11) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 11) | constructor(){super(),this.#$=this.attachShadow({mode:"open"}),this.#$...
method connectedCallback (line 11) | connectedCallback(){Gn.addEventListener("configchange",this.#$t=t=>{th...
method disconnectedCallback (line 11) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
method attributeChangedCallback (line 11) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"alpha"...
method grab (line 11) | grab(){return new Promise((async t=>{if(void 0===window.EyeDropper)win...
method #Zt (line 11) | #Zt(){this.isConnected&&(this.#ie?this.#be():this.#Xt())}
method #pe (line 11) | #pe(){for(let t of this["#main"].children)this.alpha?t.setAttribute("a...
method #me (line 11) | #me(){this.isConnected&&this.#Xt()}
method #vt (line 11) | #vt(){this.isConnected&&this.#Xt()}
method #_t (line 11) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s&&e===`${this...
method #se (line 11) | #se(){let t=At(this.value);if(this.dispatchEvent(new CustomEvent("chan...
method #ae (line 11) | #ae(t){Gn.setConfig(`${this.localName}:type`,this["#type-buttons"].val...
method #re (line 11) | #re(t){this["#input"].matches(":focus")&&t.stopImmediatePropagation()}
method #oe (line 11) | #oe(t){this.#ie=!0,this.dispatchEvent(new CustomEvent("changestart",{b...
method #le (line 11) | #le(t){let e=t.target;if("srgb"===e.space){let[e,i,s,n]=t.target.value...
method #he (line 11) | #he(t){this.#ie=!1,this.dispatchEvent(new CustomEvent("changeend",{bub...
method #de (line 11) | #de(t){this.dispatchEvent(new CustomEvent("changestart",{bubbles:!0}))...
method #ce (line 11) | #ce(t){"Enter"!==t.key&&"Space"!==t.code||this.closest("x-popover")&&t...
method #ue (line 11) | #ue(){return new Promise((async t=>{let e=await this.grab();this["#gra...
method #Xt (line 11) | #Xt(){let t=this.#ge();this.#fe(t),this.#xe(t),this.#we(t),this.#Ct(t)...
method #fe (line 11) | #fe(t=this.#ge()){return new Promise((async e=>{let i=this.spaces;if(a...
method #ne (line 11) | #ne(){let t=this.#ge();for(let e of this["#space-select-menu"].childre...
method #xe (line 11) | #xe(t=this.#ge()){let e;["srgb","srgb-linear","a98rgb","p3","rec2020",...
method #we (line 11) | #we(t=this.#ge()){return new Promise((async e=>{let i,s=this["#type-bu...
method #Ct (line 11) | #Ct(t=this.#ge()){this["#input"].space=t.spaceId,this["#input"].alpha=...
method #ve (line 11) | #ve(){this["#grab-button"].disabled=this.disabled}
method #ge (line 11) | #ge(){let t=At(this.value);!1===this.spaces.includes(t.spaceId)&&(t="h...
class va (line 11) | class va extends HTMLElement{static#z=Ns`<template><div id="coord-0-slid...
method value (line 12) | get value(){let t=this.#ke();if("rgb"===t){let[t,e,i]=this.#ye;return[...
method value (line 12) | set value([t,e,i,s]){let n=this.#ke();if("rgb"===n)this.#ye=[t,e,i],th...
method space (line 12) | get space(){return this.#ze}
method space (line 12) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 12) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 12) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 12) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 12) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 12) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 12) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"h...
method disconnectedCallback (line 12) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
method #ke (line 12) | #ke(){return this.#Ee,"okhsv"===this.#Ee?"srgb"===this.#ze?"okhsv":"hs...
method #De (line 12) | #De(){return"none"===this.#$e||"srgb"===this.#$e&&["srgb","srgb-linear...
method #_t (line 12) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
method #Pe (line 12) | #Pe(t){let e=t.target.closest("x-menuitem");if(e)if(e.parentElement===...
method #Te (line 12) | #Te(){this.#Ie()}
method #Me (line 12) | #Me(t){if(t.button>0||this.#ie)return;let e,i,s=this["#coord-0-slider-...
method #Le (line 12) | #Le(t){if(t.button>0||this.#ie)return;let e,i,s=this.#ke(),n=this["#co...
method #Ae (line 12) | #Ae(t){if(t.button>0||this.#ie)return;let e,i,s=this.#ke(),n=this["#co...
method #Re (line 12) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 12) | #Xt(){this.#Oe(),this.#_e(),this.#Ze(),this.#Ue(),this.#He(),this.#je(...
method #Oe (line 12) | #Oe(){this["#coord-0-slider-marker"].style.left=100*this.#ye[0]+"%"}
method #_e (line 12) | #_e(){let t=this.#ke();if("rgb"===t){let[,t,e]=this.#ye,i="srgb-linear...
method #Ze (line 12) | #Ze(){let t=this.#De();if("none"===t)this["#coord-0-slider-gamut-path"...
method #Ue (line 12) | #Ue(){this["#coord-1-slider-marker"].style.left=100*this.#ye[1]+"%"}
method #He (line 12) | #He(){let t=this.#ke();if("rgb"===t){let[t,,e]=this.#ye,i="srgb-linear...
method #je (line 12) | #je(){let t=this.#De();if("none"===t)this["#coord-1-slider-gamut-path"...
method #Ye (line 12) | #Ye(){this["#coord-2-slider-marker"].style.left=100*this.#ye[2]+"%"}
method #Ne (line 12) | #Ne(){let t=this.#ke();if("rgb"===t){let[t,e]=this.#ye,i="srgb-linear"...
method #Fe (line 12) | #Fe(){let t=this.#De();if("none"===t)this["#coord-2-slider-gamut-path"...
method #Ve (line 12) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 12) | #Ge(){let t=this.#ke();if("rgb"===t){let[t,e,i]=this.#ye,s=[{space:thi...
method #Xe (line 12) | #Xe(){let t=this.#De();if("none"===t)this["#coord-0-slider-marker"].re...
method #Be (line 12) | #Be(){if(this.#Se){let t=this.#ke();"hsv"===t||"okhsv"===t?(this["#coo...
method #Ie (line 12) | #Ie(){let t=this.#ke();for(let e of this["#color-model-menu"].querySel...
class ka (line 12) | class ka extends HTMLElement{static#z=Ns`<template><div id="hue-slider" ...
method value (line 13) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
method value (line 13) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
method space (line 13) | get space(){return this.#ze}
method space (line 13) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 13) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 13) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 13) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 13) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 13) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 13) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
method disconnectedCallback (line 13) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
method #_t (line 13) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
method #Pe (line 13) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
method #Te (line 13) | #Te(){this.#Ie()}
method #qe (line 13) | #qe(t){if(t.button>0||this.#ie)return;let e,i,s=this["#hue-slider-trac...
method #We (line 13) | #We(t){if(t.button>0||this.#ie)return;let e,i,s=this["#chroma-slider-t...
method #Ke (line 13) | #Ke(t){if(t.button>0||this.#ie)return;let e,i,s=this["#lightness-slide...
method #Re (line 13) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 13) | #Xt(){this.#Je(),this.#ri(),this.#si(),this.#ni(),this.#Qe(),this.#ti(...
method #Je (line 13) | #Je(){let[t,e,i]=this.#ye;this["#hue-slider-marker"].style.left=i/360*...
method #ri (line 13) | #ri(){let t=[];if("oklch"===this.#ze)for(let e=0;e<=360;e+=5)t.push({s...
method #si (line 13) | #si(){if("none"===this.#$e)this["#hue-slider-gamut-path"].removeAttrib...
method #ni (line 13) | #ni(){let[t,e,i]=this.#ye;"oklch"===this.#ze?this["#chroma-slider-mark...
method #Qe (line 13) | #Qe(){let[,,t]=this.#ye,e=[];if("oklch"===this.#ze)for(let i=0;i<=xa;i...
method #ti (line 13) | #ti(){if("none"===this.#$e)this["#chroma-slider-gamut-path"].removeAtt...
method #ai (line 13) | #ai(){let[t,e,i]=this.#ye;"oklch"===this.#ze?this["#lightness-slider-m...
method #ei (line 13) | #ei(){let[,t,e]=this.#ye,i=[];if("oklch"===this.#ze)for(let s=0;s<=1;s...
method #ii (line 13) | #ii(){if("none"===this.#$e)this["#lightness-slider-gamut-path"].remove...
method #Ve (line 13) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 13) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
method #Xe (line 13) | #Xe(){if("none"===this.#$e)this["#hue-slider-marker"].removeAttribute(...
method #Be (line 13) | #Be(){this["#hue-slider-label"].hidden=!this.#Se,this["#chroma-slider-...
method #Ie (line 13) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
class ya (line 13) | class ya extends HTMLElement{static#z=Ns`<template><div id="lightness-sl...
method value (line 14) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
method value (line 14) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
method space (line 14) | get space(){return this.#ze}
method space (line 14) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 14) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 14) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 14) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 14) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 14) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 14) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
method disconnectedCallback (line 14) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
method #_t (line 14) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
method #Pe (line 14) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
method #Te (line 14) | #Te(){this.#Ie()}
method #Ke (line 14) | #Ke(t){if(t.button>0||this.#ie)return;let e,i,s=this["#lightness-slide...
method #oi (line 14) | #oi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#a-slider-track"...
method #li (line 14) | #li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#b-slider-track"...
method #Re (line 14) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 14) | #Xt(){this.#ai(),this.#ei(),this.#ii(),this.#pi(),this.#hi(),this.#di(...
method #ai (line 14) | #ai(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#lightness-slider-m...
method #ei (line 14) | #ei(){let t=[],[e,i,s]=this.#ye;if("oklab"===this.#ze)for(let e=0;e<=1...
method #ii (line 14) | #ii(){if("none"===this.#$e)this["#lightness-slider-gamut-path"].remove...
method #pi (line 14) | #pi(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#a-slider-marker"]....
method #hi (line 14) | #hi(){let[t,,e]=this.#ye,i=[];if("oklab"===this.#ze)for(let s=-.4;s<=....
method #di (line 14) | #di(){if("none"===this.#$e)this["#a-slider-gamut-path"].removeAttribut...
method #mi (line 14) | #mi(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#b-slider-marker"]....
method #ci (line 14) | #ci(){let[t,e]=this.#ye,i=[];if("oklab"===this.#ze)for(let s=-.4;s<=.4...
method #ui (line 14) | #ui(){if("none"===this.#$e)this["#b-slider-gamut-path"].removeAttribut...
method #Ve (line 14) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 14) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
method #Xe (line 14) | #Xe(){if("none"===this.#$e)this["#a-slider-marker"].removeAttribute("d...
method #Be (line 14) | #Be(){this["#a-slider-label"].hidden=!this.#Se,this["#b-slider-label"]...
method #Ie (line 14) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
class Ca (line 14) | class Ca extends HTMLElement{static#z=Ns`<template><div id="x-slider" cl...
method value (line 15) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
method value (line 15) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
method space (line 15) | get space(){return this.#ze}
method space (line 15) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 15) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 15) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 15) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 15) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 15) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 15) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
method disconnectedCallback (line 15) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
method #_t (line 15) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
method #Pe (line 15) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
method #Te (line 15) | #Te(){this.#Ie()}
method #bi (line 15) | #bi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#x-slider-track"...
method #gi (line 15) | #gi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#y-slider-track"...
method #fi (line 15) | #fi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#z-slider-track"...
method #Re (line 15) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 15) | #Xt(){this.#xi(),this.#Ci(),this.#zi(),this.#Ei(),this.#wi(),this.#vi(...
method #xi (line 15) | #xi(){let[t]=this.#ye;this["#x-slider-marker"].style.left=t<0?"calc(0%...
method #Ci (line 15) | #Ci(){let[,t,e]=this.#ye,i=[];for(let s=0;s<=1;s+=.05)i.push({space:th...
method #zi (line 15) | #zi(){if("none"===this.#$e)this["#x-slider-gamut-path"].removeAttribut...
method #Ei (line 15) | #Ei(){let[,t]=this.#ye;this["#y-slider-marker"].style.left=t<0?"calc(0...
method #wi (line 15) | #wi(){let[t,,e]=this.#ye,i=[];for(let s=0;s<=1;s+=.05)i.push({space:th...
method #vi (line 15) | #vi(){if("none"===this.#$e)this["#y-slider-gamut-path"].removeAttribut...
method #$i (line 15) | #$i(){let[,,t]=this.#ye;this["#z-slider-marker"].style.left=t<0?"calc(...
method #ki (line 15) | #ki(){let[t,e]=this.#ye,i=[];for(let s=0;s<=1;s+=.05)i.push({space:thi...
method #yi (line 15) | #yi(){if("none"===this.#$e)this["#z-slider-gamut-path"].removeAttribut...
method #Ve (line 15) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 15) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
method #Xe (line 15) | #Xe(){if("none"===this.#$e)this["#x-slider-marker"].removeAttribute("d...
method #Be (line 15) | #Be(){this["#x-slider-label"].hidden=!this.#Se,this["#y-slider-label"]...
method #Ie (line 15) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
class za (line 15) | class za extends HTMLElement{static#z=Ns`<template><div id="hue-slider" ...
method value (line 16) | get value(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye...
method value (line 16) | set value([t,e,i,s]){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[n,a,r]...
method space (line 16) | get space(){return this.#ze}
method space (line 16) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 16) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 16) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 16) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 16) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 16) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 16) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"h...
method disconnectedCallback (line 16) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
method #De (line 16) | #De(){return"none"===this.#$e||"srgb"===this.#$e&&["srgb","srgb-linear...
method #_t (line 16) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
method #Pe (line 16) | #Pe(t){let e=t.target.closest("x-menuitem");if(e)if(e.parentElement===...
method #Te (line 16) | #Te(){this.#Ie()}
method #Mi (line 16) | #Mi(){this.#Ai()}
method #qe (line 16) | #qe(t){if(t.button>0||this.#ie)return;let e,i,s=this["#hue-slider-trac...
method #Li (line 16) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
method #Re (line 16) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 16) | #Xt(){this.#Je(),this.#ri(),this.#si(),this.#Ri(),this.#Pi(),this.#Ti(...
method #Je (line 16) | #Je(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t]=this.#ye;this["#hu...
method #ri (line 16) | #ri(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let t="srgb-linear"===thi...
method #si (line 16) | #si(){let t=this.#De();if("none"===t)this["#hue-slider-gamut-path"].re...
method #Ri (line 16) | #Ri(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye,s=100...
method #Pi (line 16) | #Pi(){let[t]=this.#ye,e="srgb-linear"===this.#ze?"srgb-linear":"srgb",...
method #Ti (line 16) | #Ti(){let t=this.#De();if("none"===t)this["#planar-slider-gamut-path"]...
method #Ve (line 16) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 16) | #Ge(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye,s="sr...
method #Xe (line 16) | #Xe(){let t=this.#De();if("none"===t)this["#hue-slider-marker"].remove...
method #Be (line 16) | #Be(){this["#hue-slider-label"].hidden=!this.#Se,this["#alpha-slider-l...
method #Ie (line 16) | #Ie(){for(let t of this["#color-model-menu"].querySelectorAll("x-menui...
class Ea (line 16) | class Ea extends HTMLElement{static#z=Ns`<template><div id="hue-slider" ...
method value (line 17) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
method value (line 17) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
method space (line 17) | get space(){return this.#ze}
method space (line 17) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 17) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 17) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 17) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 17) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 17) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 17) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
method disconnectedCallback (line 17) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
method #_t (line 17) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
method #Pe (line 17) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
method #Te (line 17) | #Te(){this.#Ie()}
method #Mi (line 17) | #Mi(){this.#Ai()}
method #qe (line 17) | #qe(t){if(t.button>0||this.#ie)return;let e,i,s=this["#hue-slider-trac...
method #Li (line 17) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
method #Re (line 17) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 17) | #Xt(){this.#Je(),this.#ri(),this.#si(),this.#Ri(),this.#Pi(),this.#Ti(...
method #Je (line 17) | #Je(){let[t,e,i]=this.#ye;this["#hue-slider-marker"].style.left=i/360*...
method #ri (line 17) | #ri(){let t=[];if("oklch"===this.#ze)for(let e=0;e<=360;e+=5)t.push({s...
method #si (line 17) | #si(){if("none"===this.#$e)this["#hue-slider-gamut-path"].removeAttrib...
method #Ri (line 17) | #Ri(){if("lch"===this.#ze){let[t,e]=this.#ye,i=t,s=100-e/fa*100;this["...
method #Pi (line 17) | #Pi(){let t=this["#planar-slider-canvas"],e=t.getContext("2d",{colorSp...
method #Ti (line 17) | #Ti(){if("none"===this.#$e)this["#planar-slider-gamut-path"].removeAtt...
method #Ve (line 17) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 17) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
method #Xe (line 17) | #Xe(){if("none"===this.#$e)this["#hue-slider-marker"].removeAttribute(...
method #Be (line 17) | #Be(){this["#hue-slider-label"].hidden=!this.#Se,this["#alpha-slider-l...
method #Ie (line 17) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
class $a (line 17) | class $a extends HTMLElement{static#z=Ns`<template><div id="lightness-sl...
method value (line 18) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
method value (line 18) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
method space (line 18) | get space(){return this.#ze}
method space (line 18) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 18) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 18) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 18) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 18) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 18) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 18) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
method disconnectedCallback (line 18) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
method #_t (line 18) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
method #Pe (line 18) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
method #Te (line 18) | #Te(){this.#Ie()}
method #Mi (line 18) | #Mi(){this.#Ai()}
method #Ke (line 18) | #Ke(t){if(t.button>0||this.#ie)return;let e,i,s=this["#lightness-slide...
method #Li (line 18) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
method #Re (line 18) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 18) | #Xt(){this.#Ri(),this.#Pi(),this.#Ti(),this.#ai(),this.#ei(),this.#ii(...
method #Ri (line 18) | #Ri(){let t,e,[i,s,n]=this.#ye;"lab"===this.#ze?(t=s<-125?"calc(0% - 1...
method #Pi (line 18) | #Pi(){let t=this["#planar-slider-canvas"],e=t.getContext("2d",{colorSp...
method #Ti (line 18) | #Ti(){if("none"===this.#$e)this["#planar-slider-gamut-path"].removeAtt...
method #ai (line 18) | #ai(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#lightness-slider-m...
method #ei (line 18) | #ei(){let[,t,e]=this.#ye,i=[];if("oklab"===this.#ze)for(let s=0;s<=1;s...
method #ii (line 18) | #ii(){if("none"===this.#$e)this["#lightness-slider-gamut-path"].remove...
method #Ve (line 18) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 18) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
method #Xe (line 18) | #Xe(){if("none"===this.#$e)this["#planar-slider-marker"].removeAttribu...
method #Be (line 18) | #Be(){this["#lightness-slider-label"].hidden=!this.#Se,this["#alpha-sl...
method #Ie (line 18) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
class Sa (line 18) | class Sa extends HTMLElement{static#z=Ns`<template><div id="linear-slide...
method value (line 19) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
method value (line 19) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
method space (line 19) | get space(){return this.#ze}
method space (line 19) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 19) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 19) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 19) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 19) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 19) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 19) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"x...
method disconnectedCallback (line 19) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
method #_t (line 19) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
method #Pe (line 19) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
method #Te (line 19) | #Te(){this.#Ie()}
method #Mi (line 19) | #Mi(){this.#Ai()}
method #Di (line 19) | #Di(t){if(t.button>0||this.#ie)return;let e,i,s=this["#linear-slider-t...
method #Li (line 19) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
method #Re (line 19) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 19) | #Xt(){this.#Bi(),this.#Ii(),this.#Oi(),this.#Ri(),this.#Pi(),this.#Ti(...
method #Bi (line 19) | #Bi(){let[t,e,i]=this.#ye;"x-zy"===this.#Ee?this["#linear-slider-marke...
method #Ii (line 19) | #Ii(){let[t,e,i]=this.#ye,s=[];if("x-zy"===this.#Ee)for(let t=0;t<=1;t...
method #Oi (line 19) | #Oi(){if("none"===this.#$e)this["#linear-slider-gamut-path"].removeAtt...
method #Ri (line 19) | #Ri(){let t,e,[i,s,n]=this.#ye;"x-zy"===this.#Ee?(t=n<0?"calc(0% - 18p...
method #Pi (line 19) | #Pi(){let t=this["#planar-slider-canvas"],e=t.getContext("2d",{colorSp...
method #Ti (line 19) | #Ti(){if("none"===this.#$e)this["#planar-slider-gamut-path"].removeAtt...
method #Ve (line 19) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 19) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
method #Xe (line 19) | #Xe(){if("none"===this.#$e)this["#linear-slider-marker"].removeAttribu...
method #Be (line 19) | #Be(){this["#linear-slider-label"].hidden=!this.#Se,this["#linear-slid...
method #Ie (line 19) | #Ie(){for(let t of this["#color-model-menu"].querySelectorAll("x-menui...
class Ma (line 19) | class Ma extends HTMLElement{static#z=Ns`<template><div id="polar-slider...
method value (line 20) | get value(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye...
method value (line 20) | set value([t,e,i,s]){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[n,a,r]...
method space (line 20) | get space(){return this.#ze}
method space (line 20) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
method alpha (line 20) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 20) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method disabled (line 20) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 20) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 20) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 20) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"h...
method disconnectedCallback (line 20) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
method #De (line 20) | #De(){return"none"===this.#$e||"srgb"===this.#$e&&["srgb","srgb-linear...
method #_t (line 20) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
method #Pe (line 20) | #Pe(t){let e=t.target.closest("x-menuitem");if(e)if(e.parentElement===...
method #Te (line 20) | #Te(){this.#Ie()}
method #Mi (line 20) | #Mi(){this.#ji()}
method #Hi (line 20) | #Hi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#polar-slider"]....
method #Di (line 20) | #Di(t){if(t.button>0||this.#ie)return;let e,i,s=this["#linear-slider-t...
method #Re (line 20) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
method #Xt (line 20) | #Xt(){this.#Ni(),this.#Fi(),this.#Gi(),this.#Bi(),this.#Ii(),this.#Oi(...
method #Ni (line 20) | #Ni(){let[t,e,i]=this.#ye;if("hsv"===this.#Ee||"hsl"===this.#Ee){let i...
method #Fi (line 20) | #Fi(){let t="srgb-linear"===this.#ze?"srgb-linear":"srgb",e="srgb-line...
method #Gi (line 20) | #Gi(){let t=this.#De();if("none"===t)this["#polar-slider-gamut-path"]....
method #Bi (line 20) | #Bi(){let[,t,e]=this.#ye;"hsv"!==this.#Ee&&"hsl"!==this.#Ee||(this["#l...
method #Ii (line 20) | #Ii(){if("hsv"===this.#Ee){let[t,e]=this.#ye,i="srgb-linear"===this.#z...
method #Oi (line 20) | #Oi(){let t=this.#De();if("none"===t)this["#linear-slider-gamut-path"]...
method #Ve (line 20) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
method #Ge (line 20) | #Ge(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye,s="sr...
method #Xe (line 20) | #Xe(){let t=this.#De();if("none"===t)this["#polar-slider-marker"].remo...
method #Be (line 20) | #Be(){this.#Se?("hsv"===this.#Ee?this["#linear-slider-label"].textCont...
method #Ie (line 20) | #Ie(){for(let t of this["#color-model-menu"].querySelectorAll("x-menui...
class La (line 20) | class La extends HTMLElement{static observedAttributes=["value","alpha",...
method value (line 21) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 21) | set value(t){this.setAttribute("value",t)}
method alpha (line 21) | get alpha(){return this.hasAttribute("alpha")}
method alpha (line 21) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
method spaces (line 21) | get spaces(){return this.hasAttribute("spaces")?this.getAttribute("spa...
method spaces (line 21) | set spaces(t){this.setAttribute("spaces",t.join(" "))}
method disabled (line 21) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 21) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 21) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 21) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 21) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 21) | connectedCallback(){this["#color-picker"].setAttribute("value",this.va...
method attributeChangedCallback (line 21) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"alpha"...
method #Vt (line 21) | async#Vt(){!1===this.hasAttribute("expanded")&&(this.#X=this.matches("...
method #Wt (line 21) | async#Wt(t=null){if(this.hasAttribute("expanded")){if(this["#popover"]...
method #Vi (line 21) | #Vi(){this["#preview"].style.background=this.value}
method #J (line 21) | #J(){this.setAttribute("aria-disabled",this.disabled),this.disabled?(t...
method #Zt (line 21) | #Zt(){!1===this.#Xi&&(this.#Vi(),this["#color-picker"].getAttribute("v...
method #pe (line 21) | #pe(){this["#color-picker"].alpha=this.alpha}
method #me (line 21) | #me(){this["#color-picker"].spaces=this.spaces}
method #vt (line 21) | #vt(){this.#J()}
method #qi (line 21) | #qi(){this["#color-picker"].size=this.size}
method #Zi (line 21) | #Zi(){this.#Xi=!0,this.dispatchEvent(new CustomEvent("changestart",{bu...
method #Ui (line 21) | #Ui(t){this.value=this["#color-picker"].value,this.dispatchEvent(new C...
method #Yi (line 21) | #Yi(){this.#Xi=!1,this.dispatchEvent(new CustomEvent("changeend",{bubb...
method #Y (line 21) | #Y(t){t.target===this&&!1===this.matches(":focus")&&t.preventDefault()}
method #P (line 21) | #P(t){!1===this["#popover"].opened&&(t.preventDefault(),this.#Vt())}
method #W (line 21) | #W(t){"Enter"===t.code||"NumpadEnter"===t.code||"Space"===t.code?(t.pr...
method #_i (line 21) | #_i(){this.dispatchEvent(new CustomEvent("collapse")),this.#Wt()}
class Aa (line 21) | class Aa extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method disabled (line 22) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 22) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 22) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 22) | connectedCallback(){this.#Wi=this.parentElement||this.parentNode.host,...
method disconnectedCallback (line 22) | disconnectedCallback(){window.removeEventListener("blur",this.#Ki),thi...
method open (line 22) | open(t,e){let i=this.querySelector("x-menu");!1===i.opened&&(i.openAtP...
method close (line 22) | close(){return new Promise((async t=>{this["#backdrop"].hide(!1);let e...
method #ts (line 22) | #ts(){this.close()}
method #es (line 22) | #es(t){!1===this.disabled&&(t.preventDefault(),this.open(t.clientX,t.c...
method #Qi (line 22) | #Qi(t){"touch"!==t.pointerType&&(t.preventDefault(),t.stopImmediatePro...
method #ut (line 22) | #ut(t){t.buttons<=1&&"touch"!==t.pointerType&&(t.preventDefault(),t.st...
method #At (line 22) | #At(t){"touch"===t.pointerType&&this.close()}
method #P (line 22) | async#P(t){let e=t.target.closest("x-menuitem");if(e&&!1===e.disabled)...
method #W (line 22) | #W(t){if("Escape"===t.code){this.querySelector("x-menu").opened&&(t.pr...
class Ra (line 22) | class Ra extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method position (line 23) | get position(){return this.hasAttribute("position")?this.getAttribute(...
method position (line 23) | set position(t){this.setAttribute("position",t)}
method manual (line 23) | get manual(){return this.hasAttribute("manual")}
method manual (line 23) | set manual(t){t?this.setAttribute("manual",""):this.removeAttribute("m...
method constructor (line 23) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method open (line 23) | open(){return new Promise((async t=>{if(!1===this.isConnected)return v...
method close (line 23) | close(){return new Promise((async t=>{this.#is&&await this.#is.finishe...
method toggle (line 23) | toggle(){this.hasAttribute("popover")?this.close():this.open()}
class Pa (line 23) | class Pa extends HTMLElement{static observedAttributes=["href"];static#z...
method href (line 24) | get href(){return this.hasAttribute("href")?this.getAttribute("href"):""}
method href (line 24) | set href(t){this.setAttribute("href",t)}
method disabled (line 24) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 24) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 24) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 24) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 24) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 24) | connectedCallback(){Gn.addEventListener("iconschange",this.#as=()=>{th...
method disconnectedCallback (line 24) | disconnectedCallback(){Gn.removeEventListener("iconschange",this.#as)}
method attributeChangedCallback (line 24) | attributeChangedCallback(t,e,i){e!==i&&"href"===t&&this.#Xt()}
method #V (line 24) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
method #q (line 24) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
method #Xt (line 24) | async#Xt(){let t=null,e=this.href.trim();if(""!==e){let i=null,s=null;...
class Ta (line 24) | class Ta extends HTMLElement{static observedAttributes=["type","value","...
method type (line 25) | get type(){return this.hasAttribute("type")?this.getAttribute("type"):...
method type (line 25) | set type(t){this.setAttribute("type",t)}
method value (line 25) | get value(){return this["#input"].value}
method value (line 25) | set value(t){this["#input"].value!==t&&(this.matches(":focus")?(this["...
method spellcheck (line 25) | get spellcheck(){return this.hasAttribute("spellcheck")}
method spellcheck (line 25) | set spellcheck(t){t?this.setAttribute("spellcheck",""):this.removeAttr...
method minLength (line 25) | get minLength(){return this.hasAttribute("minlength")?parseInt(this.ge...
method minLength (line 25) | set minLength(t){this.setAttribute("minlength",t)}
method maxLength (line 25) | get maxLength(){return this.hasAttribute("maxlength")?parseInt(this.ge...
method maxLength (line 25) | set maxLength(t){this.setAttribute("maxlength",t)}
method required (line 25) | get required(){return this.hasAttribute("required")}
method required (line 25) | set required(t){t?this.setAttribute("required",""):this.removeAttribut...
method readOnly (line 25) | get readOnly(){return this.hasAttribute("readonly")}
method readOnly (line 25) | set readOnly(t){!0===t?this.setAttribute("readonly",t):this.removeAttr...
method mixed (line 25) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 25) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 25) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 25) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method validation (line 25) | get validation(){return this.hasAttribute("validation")?this.getAttrib...
method validation (line 25) | set validation(t){this.setAttribute("validation",t)}
method size (line 25) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 25) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method empty (line 25) | get empty(){return this.hasAttribute("empty")}
method error (line 25) | get error(){return this.hasAttribute("error")}
method constructor (line 25) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
method connectedCallback (line 25) | connectedCallback(){this.#J(),this.#zt(),"instant"===this.validation?t...
method attributeChangedCallback (line 25) | attributeChangedCallback(t,e,i){e!==i&&("type"===t?this.#ls():"value"=...
method selectAll (line 25) | selectAll(){this["#input"].select()}
method clear (line 25) | clear(){this.value="",this.#Et=null,this.#rs=null,this.#Yt()}
method reportValidity (line 25) | reportValidity(){let t=new CustomEvent("beforevalidate",{bubbles:!1,ca...
method setCustomValidity (line 25) | setCustomValidity(t){this.#rs=""===t?null:t,this.#Yt()}
method #Yt (line 25) | #Yt(){let t=this.#rs||this.#Et;t?this.setAttribute("error",""):this.re...
method #zt (line 25) | #zt(){0===this.value.length?this.setAttribute("empty",""):this.removeA...
method #J (line 25) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
method #ls (line 25) | #ls(){"color"===this.type?this["#input"].type="text":this["#input"].ty...
method #Zt (line 25) | #Zt(){this.value=this.hasAttribute("value")?this.getAttribute("value")...
method #hs (line 25) | #hs(){this["#input"].spellcheck=this.spellcheck}
method #ds (line 25) | #ds(){this["#input"].minLength=this.minLength}
method #cs (line 25) | #cs(){this["#input"].maxLength=this.maxLength}
method #us (line 25) | #us(){this["#input"].readOnly=this.readOnly,this.#J()}
method #vt (line 25) | #vt(){this["#input"].disabled=this.disabled,this.#J()}
method #ps (line 25) | #ps(){"instant"===this.validation?this.reportValidity():"auto"!==this....
method #P (line 25) | #P(){this.#Yt()}
method #V (line 25) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
method #q (line 25) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
method #Rt (line 25) | #Rt(){this.#Yt(),this.dispatchEvent(new CustomEvent("textinputmodestar...
method #Pt (line 25) | #Pt(){this.dispatchEvent(new CustomEvent("textinputmodeend",{bubbles:!...
method #W (line 25) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code||(document.execCommand(...
method #Tt (line 25) | #Tt(t){"instant"===this.validation?this.reportValidity():"auto"!==this...
method #de (line 25) | #de(t){this.#os=t.timeStamp,this.dispatchEvent(new CustomEvent("change...
method #Bt (line 25) | #Bt(t){t.timeStamp-this.#os>100&&this.dispatchEvent(new CustomEvent("c...
class Da (line 25) | class Da extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method value (line 26) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 26) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
method level (line 26) | get level(){return this.hasAttribute("level")?parseInt(this.getAttribu...
method level (line 26) | set level(t){null===t?this.removeAttribute("level"):this.setAttribute(...
method disabled (line 26) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 26) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method constructor (line 26) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
class Ha (line 26) | class Ha extends HTMLElement{static observedAttributes=["href","args","a...
method href (line 26) | get href(){return this.hasAttribute("href")?this.getAttribute("href"):""}
method href (line 26) | set href(t){this.setAttribute("href",t)}
method args (line 26) | get args(){let t=Object.create(null),e=this.hasAttribute("args")?this....
method args (line 26) | set args(t){let e=Object.keys(t).map((e=>`${e}: ${t[e]}`)).join(", ");...
method autocapitalize (line 26) | get autocapitalize(){return!!this.hasAttribute("autocapitalize")}
method autocapitalize (line 26) | set autocapitalize(t){t?this.setAttribute("autocapitalize",""):this.re...
method ellipsis (line 26) | get ellipsis(){return this.hasAttribute("ellipsis")}
method ellipsis (line 26) | set ellipsis(t){t?this.setAttribute("ellipsis",""):this.removeAttribut...
method whenReady (line 26) | get whenReady(){return new Promise((t=>{null===this.#ms?t():this.#ms.p...
method constructor (line 26) | constructor(){super(),this.textContent.length>0&&(this.#gs=this.textCo...
method connectedCallback (line 26) | connectedCallback(){this.#Xt(),Gn.addEventListener("localeschange",thi...
method disconnectedCallback (line 26) | disconnectedCallback(){Gn.removeEventListener("localeschange",this.#bs...
method attributeChangedCallback (line 26) | attributeChangedCallback(t,e,i){e!==i&&!1!==this.isConnected&&("href"=...
method #Xt (line 26) | async#Xt(){await Gn.whenLocalesReady;let t=Gn.queryMessage(this.href,t...
class Fa (line 26) | class Fa extends HTMLElement{static observedAttributes=["opened"];static...
method opened (line 27) | get opened(){return this.hasAttribute("opened")}
method constructor (line 27) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 27) | connectedCallback(){this.setAttribute("role","menu"),this.setAttribute...
method attributeChangedCallback (line 27) | attributeChangedCallback(t,e,i){e!==i&&"opened"===t&&this.#As()}
method openOverElement (line 27) | openOverElement(t,e){return new Promise((async i=>{let s=this.querySel...
method openOverLabel (line 27) | openOverLabel(t){return new Promise((async e=>{let i=this.querySelecto...
method openNextToElement (line 27) | openNextToElement(t,e="horizontal",i=0){return new Promise((async s=>{...
method openAtPoint (line 27) | openAtPoint(t,e){return new Promise((async i=>{this.#ys=!1,this.#zs=Nn...
method close (line 27) | close(t=!0){return new Promise((async e=>{if(this.opened){this.removeA...
method focusNextMenuItem (line 27) | focusNextMenuItem(){let t=this.querySelector(":scope > x-menuitem:focu...
method focusPreviousMenuItem (line 27) | focusPreviousMenuItem(){let t=this.querySelector(":scope > x-menuitem:...
method focusFirstMenuItem (line 27) | focusFirstMenuItem(){let t=this.querySelectorAll("x-menuitem:not([disa...
method focusLastMenuItem (line 27) | focusLastMenuItem(){let t=this.querySelectorAll("x-menuitem:not([disab...
method #Ps (line 27) | #Ps(t){let e=0;{let t=this.#fs[this.#fs.length-1],i=this.#fs[0];if(thi...
method #Ts (line 27) | #Ts(){this.#xs&&(clearTimeout(this.#xs),this.#xs=null)}
method #Rs (line 27) | #Rs(){this.style.position="fixed",this.style.top="0px",this.style.left...
method #Ds (line 27) | #Ds(){return this.matches("*[closing], *[closing] x-menu")}
method #As (line 27) | #As(){this.setAttribute("aria-hidden",!this.opened)}
method #Y (line 27) | #Y(t){if(t.target!==this&&"hr"!==t.target.localName||t.stopPropagation...
method #Es (line 27) | #Es(t){if(!this.#Ds()&&"touch"!==t.pointerType&&t.target.closest("x-me...
method #$s (line 27) | #$s(t){t.relatedTarget&&Zn(t.relatedTarget,"x-menu")===this||!0===this...
method #Bs (line 27) | #Bs(){this.#Ds()||(this.#Cs=!0,this.#Ts())}
method #Is (line 27) | #Is(){this.#Ds()||(this.#Cs=!1,this.#Ts(),this.focus())}
method #Ss (line 27) | #Ss(t){this.#fs.push({x:t.clientX,y:t.clientY}),this.#fs.length>3&&thi...
method #Ms (line 27) | #Ms(t){t.target.closest("x-menu")===this?(t.preventDefault(),this.scro...
method #Ls (line 27) | #Ls(){if(this.#ys){let t=this.scrollTop-this.#vs;if(this.#vs=this.scro...
method #W (line 27) | #W(t){if(this.#Ds())t.preventDefault(),t.stopPropagation();else if("Ar...
class Xa (line 27) | class Xa extends HTMLElement{static observedAttributes=["disabled"];stat...
method disabled (line 28) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 28) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 28) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 28) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 28) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 28) | connectedCallback(){this.setAttribute("role","menubar"),this.setAttrib...
method disconnectedCallback (line 28) | disconnectedCallback(){window.removeEventListener("orientationchange",...
method attributeChangedCallback (line 28) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#vt()}
method #Ys (line 28) | #Ys(){{let t=this.querySelector(":scope > x-menuitem[ellipsis]");t?t.h...
method #Ws (line 28) | #Ws(t){let e=t.querySelector(":scope > x-menu");if(e&&!1===e.opened){l...
method #Ks (line 28) | #Ks(){return new Promise((async t=>{let e=this.#Os;this.#Os=!1,this.st...
method #Js (line 28) | #Js(){let t=[...this.querySelectorAll(":scope > x-menuitem:not([disabl...
method #Qs (line 28) | #Qs(){let t=[...this.querySelectorAll(":scope > x-menuitem:not([disabl...
method #vt (line 28) | #vt(){this.setAttribute("aria-disabled",this.disabled)}
method #Pt (line 28) | #Pt(t){null!==t.relatedTarget&&!1!==this.contains(t.relatedTarget)||th...
method #Vs (line 28) | #Vs(){this.#Ks()}
method #js (line 28) | #js(){this.isConnected&&this.#qs()}
method #Ns (line 28) | #Ns(){this.isConnected&&this.#qs()}
method #Fs (line 28) | #Fs(){this.isConnected&&this.#qs()}
method #Zs (line 28) | #Zs(t){let e=this.querySelector("x-menu[opened]");e&&!1===e.contains(t...
method #P (line 28) | async#P(t){let e=t.target.closest("x-menuitem");if(e&&!1===t.isTrusted...
method #Gs (line 28) | async#Gs(t){if(this.hasAttribute("closing"))return;let e=t.target.clos...
method #Xs (line 28) | #Xs(t){if(this.hasAttribute("closing"))return;let e=t.target.closest("...
method #_s (line 28) | #_s(t){if(this.hasAttribute("closing"))return;let e=t.target.closest("...
method #Us (line 28) | #Us(t){if(this.hasAttribute("closing"))t.stopPropagation(),t.preventDe...
class _a (line 28) | class _a extends HTMLElement{static observedAttributes=["disabled"];stat...
method value (line 29) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 29) | set value(t){this.value!==t&&(null===t?this.removeAttribute("value"):t...
method toggled (line 29) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 29) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method togglable (line 29) | get togglable(){return this.hasAttribute("togglable")}
method togglable (line 29) | set togglable(t){t?this.setAttribute("togglable",""):this.removeAttrib...
method disabled (line 29) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 29) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 29) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 29) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method whenTriggerEnd (line 29) | get whenTriggerEnd(){return new Promise((t=>{!1===this.#tn?t():this.#e...
method constructor (line 29) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 29) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#ft(),this.#I()}...
method disconnectedCallback (line 29) | disconnectedCallback(){this.#sn.disconnect(),Gn.removeEventListener("t...
method attributeChangedCallback (line 29) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#J()}
method #ft (line 29) | #ft(){let t=getComputedStyle(this["#checkmark"]).getPropertyValue("--p...
method #I (line 29) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
method #nn (line 29) | #nn(){if(this.parentElement&&"x-menubar"===this.parentElement.localNam...
method #J (line 29) | #J(){this.setAttribute("role","menuitem"),this.setAttribute("aria-disa...
method #an (line 29) | #an(){this.#ft(),this.#I()}
method #Y (line 29) | async#Y(t){if(this.#in=this.matches(":focus"),t.buttons>1)return!1;if(...
method #P (line 29) | async#P(t){if(t.buttons>1)return;let e=t.target.closest("x-menuitem"),...
method #W (line 29) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
class Za (line 29) | class Za extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method value (line 30) | get value(){let t=this.querySelector("x-navitem[toggled]");return t?t....
method value (line 30) | set value(t){let e=[...this.querySelectorAll("x-navitem")],i=null===t?...
method constructor (line 30) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 30) | connectedCallback(){this.setAttribute("role","navigation"),"x-navitem"...
method #rn (line 30) | #rn(){let t=this;for(;;){let e=t.parentElement?.closest("x-nav");if(!e...
method #P (line 30) | #P(t){let e=t.target.closest("x-navitem");if(e&&!1===e.hasAttribute("e...
method #Y (line 30) | #Y(t){if(t.buttons>1)return void t.preventDefault();let e=t.target.clo...
method #W (line 30) | #W(t){let e=this.#rn(),i=e.querySelector("x-navitem:focus");if("Enter"...
class Ua (line 30) | class Ua extends HTMLElement{static observedAttributes=["disabled"];stat...
method value (line 31) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 31) | set value(t){this.setAttribute("value",t)}
method toggled (line 31) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 31) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method disabled (line 31) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 31) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method expanded (line 31) | get expanded(){return this.hasAttribute("expanded")}
method expanded (line 31) | set expanded(t){t?this.setAttribute("expanded",""):this.removeAttribut...
method expandable (line 31) | get expandable(){return this.hasAttribute("expandable")}
method constructor (line 31) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 31) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#I()})),Gn.addEv...
method disconnectedCallback (line 31) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
method attributeChangedCallback (line 31) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#J()}
method expand (line 31) | expand(t=!0){return new Promise((async e=>{if(!1===this.expanded)if(!1...
method collapse (line 31) | collapse(t=!0){return new Promise((async e=>{if(!0===this.expanded)if(...
method #P (line 31) | #P(t){if(this===t.target.closest("x-navitem")&&this.hasAttribute("expa...
method #H (line 31) | #H(){this.#A.length>0&&this.#A.map((t=>t.finish()))}
method #J (line 31) | #J(){this.setAttribute("role","button"),this.setAttribute("aria-disabl...
method #I (line 31) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
class Ya (line 31) | class Ya extends HTMLElement{static observedAttributes=["opened"];static...
method opened (line 32) | get opened(){return this.hasAttribute("opened")}
method opened (line 32) | set opened(t){!0===t?this.setAttribute("opened",""):this.removeAttribu...
method timeout (line 32) | get timeout(){return this.hasAttribute("timeout")?parseFloat(this.getA...
method timeout (line 32) | set timeout(t){this.setAttribute("timeout",t)}
method size (line 32) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 32) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 32) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 32) | connectedCallback(){this.setAttribute("tabindex","0")}
method attributeChangedCallback (line 32) | attributeChangedCallback(t,e,i){e!==i&&"opened"===t&&(this.opened?this...
method #dn (line 32) | #dn(){if(this.isConnected){let t=0-this.getBoundingClientRect().height...
method #K (line 32) | async#K(){if(null!==this.#ln&&(clearInterval(this.#ln),this.#ln=null),...
class Wa (line 32) | class Wa extends HTMLElement{static observedAttributes=["value","min","m...
method value (line 33) | get value(){return this.hasAttribute("value")?parseFloat(this.getAttri...
method value (line 33) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
method min (line 33) | get min(){return this.hasAttribute("min")?parseFloat(this.getAttribute...
method min (line 33) | set min(t){Va(t)?this.setAttribute("min",t):this.removeAttribute("min")}
method max (line 33) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
method max (line 33) | set max(t){Va(t)?this.setAttribute("max",t):this.removeAttribute("max")}
method mixed (line 33) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 33) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method precision (line 33) | get precision(){return this.hasAttribute("precision")?parseFloat(this....
method precision (line 33) | set precision(t){this.setAttribute("precision",t)}
method step (line 33) | get step(){return this.hasAttribute("step")?parseFloat(this.getAttribu...
method step (line 33) | set step(t){this.setAttribute("step",t)}
method prefix (line 33) | get prefix(){return this.hasAttribute("prefix")?this.getAttribute("pre...
method prefix (line 33) | set prefix(t){this.setAttribute("prefix",t)}
method suffix (line 33) | get suffix(){return this.hasAttribute("suffix")?this.getAttribute("suf...
method suffix (line 33) | set suffix(t){this.setAttribute("suffix",t)}
method mixed (line 33) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 33) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 33) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 33) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 33) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 33) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 33) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
method connectedCallback (line 33) | connectedCallback(){this.#J(),this.#Xt()}
method attributeChangedCallback (line 33) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"min"==...
method #$n (line 33) | #$n(t=!1){let e=this.value,i=this.value;i+=t?10*this.step:this.step,i=...
method #Mn (line 33) | #Mn(t=!1){let e=this.value,i=this.value;i-=t?10*this.step:this.step,i=...
method #Ln (line 33) | #Ln(){this.#un||(this.#un=!0,this.dispatchEvent(new CustomEvent("chang...
method #Rn (line 33) | #Rn(){let t=this["#editor"].textContent,e=parseFloat(t);Number.isNaN(e...
method #Xt (line 33) | #Xt(){this.#Pn(),this.#Sn(),this.#Tn()}
method #Pn (line 33) | #Pn(){if(this.hasAttribute("value"))if(this.step<1){let t=parseFloat(t...
method #Sn (line 33) | #Sn(){let t=null;if(this.matches(":focus")){let e=this["#editor"].text...
method #Tn (line 33) | #Tn(){let t=this.querySelector("x-stepper");if(t){let e=this.value>thi...
method #J (line 33) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
method #Zt (line 33) | #Zt(){this.#Xt()}
method #yn (line 33) | #yn(){this.#Tn()}
method #Cn (line 33) | #Cn(){this.#Tn()}
method #zn (line 33) | #zn(){this["#editor"].setAttribute("data-prefix",this.prefix)}
method #En (line 33) | #En(){this["#editor"].setAttribute("data-suffix",this.suffix)}
method #vt (line 33) | #vt(){this["#editor"].contentEditable=this.disabled?"false":"plaintext...
method #Rt (line 33) | #Rt(){document.execCommand("selectAll"),this.dispatchEvent(new CustomE...
method #Pt (line 33) | #Pt(){"chromium"===Hn()&&this.#$.getSelection().collapse(this["#main"]...
method #fn (line 33) | #fn(){this.#Sn(),this.#Tn()}
method #Ms (line 33) | #Ms(t){this.matches(":focus")&&(t.preventDefault(),this.#Ln(),t.wheelD...
method #P (line 33) | #P(t){t.preventDefault()}
method #Y (line 33) | #Y(t){"x-stepper"===t.target.localName&&t.preventDefault()}
method #Xs (line 33) | #Xs(t){if(t.buttons>1||!1===t.isPrimary)t.preventDefault();else if(t.t...
method #V (line 33) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
method #q (line 33) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
method #vn (line 33) | #vn(t){let e,i;this.matches(":focus")&&this.#Rn(),this.#bn=!0,this.add...
method #kn (line 33) | #kn(t){let e,i;this.matches(":focus")&&this.#Rn(),this.#bn=!0,this.add...
method #W (line 33) | #W(t){"ArrowDown"===t.code?(t.preventDefault(),this.#pn=!0,this.#Ln(),...
method #xn (line 33) | #xn(t){"ArrowDown"===t.code||"ArrowUp"===t.code?(this.#pn=!1,this.#An(...
method #wn (line 33) | #wn(t){!1===t.ctrlKey&&!1===t.altKey&&!1===t.metaKey&&!1===qa.includes...
method #gn (line 33) | async#gn(t){t.preventDefault();let e=t.clipboardData.getData("text/pla...
class Ka (line 33) | class Ka extends HTMLElement{static observedAttributes=["value","max","c...
method value (line 34) | get value(){return this.hasAttribute("value")?parseInt(this.getAttribu...
method value (line 34) | set value(t){t=ki(t,1,this.max),this.setAttribute("value",t)}
method max (line 34) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
method max (line 34) | set max(t){this.setAttribute("max",t)}
method controls (line 34) | get controls(){return this.hasAttribute("controls")?this.getAttribute(...
method controls (line 34) | set controls(t){this.setAttribute("controls",t.join(" "))}
method href (line 34) | get href(){return this.getAttribute("href")}
method href (line 34) | set href(t){t?this.setAttribute("href",t):this.removeAttribute("href")}
method constructor (line 34) | constructor(){super()}
method connectedCallback (line 34) | connectedCallback(){if(!this.#$){this.setAttribute("role","navigation"...
method disconnectedCallback (line 34) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
method attributeChangedCallback (line 34) | attributeChangedCallback(t,e,i){e!==i&&this.#$&&("value"===t||"max"===...
method #an (line 34) | #an(){this.#Xt()}
method #Y (line 34) | #Y(t){if(t.buttons>1)return void t.preventDefault();let e=t.target.clo...
method #P (line 34) | #P(t){let e=t.target.closest(".item"),i=t.target.closest("a");e&&void ...
method #W (line 34) | #W(t){let e=this["#items"].querySelector(":focus");if(e)if("Enter"===t...
method #Dn (line 34) | #Dn(){let t="";if(this.controls.includes("first")&&this.max>1&&(t+=thi...
method #Bn (line 34) | #Bn(t=1,e="prev"){let i='part="item"',s=`data-value="${t}"`,n=t===this...
method #In (line 34) | #In(t=1,e=!1){let i=e||!this.href?null:this.#Hn(t),s=`id="item-${t}"`,...
method #On (line 34) | #On(){return'<div class="item ellipsis-item">…</div>'}
method #Hn (line 34) | #Hn(t=1){let e=new URL(this.href);return 1===t?e.searchParams.delete("...
method #Xt (line 34) | #Xt(){let t=this["#items"].querySelector(":focus");this["#items"].inne...
class Ja (line 34) | class Ja extends HTMLElement{static observedAttributes=["modal"];static#...
method opened (line 35) | get opened(){return this.hasAttribute("opened")}
method modal (line 35) | get modal(){return this.hasAttribute("modal")}
method modal (line 35) | set modal(t){t?this.setAttribute("modal",""):this.removeAttribute("mod...
method constructor (line 35) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 35) | connectedCallback(){this.tabIndex=-1}
method attributeChangedCallback (line 35) | attributeChangedCallback(t,e,i){e!==i&&"modal"===t&&(this.modal&&this....
method #Mi (line 35) | #Mi(){this.#_n(this.#Fn)}
method open (line 35) | open(t,e=!0){return new Promise((async i=>{if(this.#Fn=t,!1===this.ope...
method close (line 35) | close(t=!0){return new Promise((async e=>{if(!0===this.opened&&(this.r...
method #_n (line 35) | #_n(t){let e=getComputedStyle(this).getPropertyValue("--align").trim()...
method #Zn (line 35) | #Zn(){{let{backgroundColor:t,borderColor:e,borderWidth:i}=getComputedS...
class Qa (line 35) | class Qa extends HTMLElement{static observedAttributes=["value","max","d...
method value (line 36) | get value(){return this.hasAttribute("value")?parseFloat(this.getAttri...
method value (line 36) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
method max (line 36) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
method max (line 36) | set max(t){this.setAttribute("max",t)}
method disabled (line 36) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 36) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 36) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 36) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 36) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 36) | connectedCallback(){this.#Xt()}
method attributeChangedCallback (line 36) | attributeChangedCallback(t,e,i){e!==i&&("value"===t||"disabled"===t)&&...
method #Xt (line 36) | #Xt(){if(null===this.value||-1===this.value||this.disabled?this["#dete...
class tr (line 36) | class tr extends HTMLElement{static observedAttributes=["toggled","disab...
method value (line 37) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 37) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
method toggled (line 37) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 37) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method mixed (line 37) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 37) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 37) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 37) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 37) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 37) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 37) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 37) | connectedCallback(){this.#J()}
method attributeChangedCallback (line 37) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t?this.#xt():"disa...
method #J (line 37) | #J(){this.setAttribute("role","radio"),this.setAttribute("aria-checked...
method #xt (line 37) | #xt(){this.setAttribute("aria-checked",this.toggled)}
method #vt (line 37) | #vt(){this.#J()}
method #P (line 37) | #P(t){this.closest("x-radios")||(this.toggled&&this.mixed?this.mixed=!...
method #Y (line 37) | #Y(t){if(!1===this.matches(":focus")){t.preventDefault();let e=Zn(this...
method #W (line 37) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
class er (line 37) | class er extends HTMLElement{get value(){let t=this.querySelector("x-rad...
method value (line 37) | get value(){let t=this.querySelector("x-radio[toggled]");return t?t.va...
method value (line 37) | set value(t){for(let e of this.querySelectorAll("x-radio"))e.toggled=e...
method constructor (line 37) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 37) | connectedCallback(){this.setAttribute("role","radiogroup");let t=[...t...
method #P (line 37) | #P(t){let e=t.target.closest("x-radio");if(e&&!e.disabled&&t.buttons<=...
method #W (line 37) | #W(t){if("ArrowDown"===t.code||"ArrowRight"===t.code){let e=[...this.q...
class sr (line 37) | class sr extends HTMLElement{static observedAttributes=["disabled"];stat...
method value (line 38) | get value(){let t=this.querySelector("x-menuitem[toggled]");return t?t...
method value (line 38) | set value(t){for(let e of this.querySelectorAll("x-menuitem"))e.toggle...
method mixed (line 38) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 38) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 38) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 38) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 38) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 38) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 38) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 38) | connectedCallback(){this.#Yn.observe(this,{childList:!0,attributes:!0,...
method disconnectedCallback (line 38) | disconnectedCallback(){this.#Yn.disconnect(),this.#Si.disconnect(),Gn....
method attributeChangedCallback (line 38) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#J()}
method #Vt (line 38) | #Vt(){if(!1===this.#qt())return;this.#X=this.matches(":focus"),this["#...
method #Wt (line 38) | async#Wt(t=null){if(!1===this.#Kt())return;let e=this.querySelector(":...
method #qt (line 38) | #qt(){if(this.disabled)return!1;{let t=this.querySelector(":scope > x-...
method #Kt (line 38) | #Kt(){if(this.disabled)return!1;{let t=this.querySelector(":scope > x-...
method #Wn (line 38) | #Wn(){let t=this.querySelector(":scope > x-menu x-menuitem[toggled]");...
method #Kn (line 38) | #Kn(){for(let t of this["#button"].children)if(t!==this["#arrow-contai...
method #I (line 38) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
method #J (line 38) | #J(){this.setAttribute("aria-disabled",this.disabled),this.disabled?(t...
method #Vn (line 38) | async#Vn(t){for(let e of t)if("attributes"===e.type&&"x-menuitem"===e....
method #Mi (line 38) | #Mi(){this.#Kn()}
method #Y (line 38) | #Y(t){t.target.closest("x-menu")||!1!==this.matches(":focus")||t.preve...
method #P (line 38) | async#P(t){if(!(t.buttons>1))if(this.#qt())this.#Vt();else if(this.#Kt...
method #qn (line 38) | #qn(t){t.preventDefault()}
method #At (line 38) | #At(t){this.#Wt()}
method #W (line 38) | #W(t){!1===t.defaultPrevented&&(this.querySelector(":scope > x-menu"),...
class rr (line 38) | class rr extends HTMLElement{static observedAttributes=["value"];static#...
method value (line 39) | get value(){let t=[];if(this.hasAttribute("value")){let e=this.getAttr...
method value (line 39) | set value(t){this.setAttribute("value",t.join("+"))}
method modKeys (line 39) | get modKeys(){return this.value.filter((t=>ar.includes(t)))}
method normalKey (line 39) | get normalKey(){let t=this.value.find((t=>!1===ar.includes(t)));return...
method constructor (line 39) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method attributeChangedCallback (line 39) | attributeChangedCallback(t,e,i){e!==i&&"value"===t&&this.#Xt()}
method #Xt (line 39) | #Xt(){let t="";this.value;let e=this.modKeys,i=this.normalKey;if(nr){e...
class or (line 39) | class or extends HTMLElement{static observedAttributes=["value","min","m...
method min (line 40) | get min(){return this.hasAttribute("min")?parseFloat(this.getAttribute...
method min (line 40) | set min(t){this.setAttribute("min",t)}
method max (line 40) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
method max (line 40) | set max(t){this.setAttribute("max",t)}
method value (line 40) | get value(){if(this.hasAttribute("value")){let t=this.getAttribute("va...
method value (line 40) | set value(t){Array.isArray(t)?((t=t.map((t=>ki(t,this.min,this.max))))...
method step (line 40) | get step(){return this.hasAttribute("step")?parseFloat(this.getAttribu...
method step (line 40) | set step(t){this.setAttribute("step",t)}
method ticks (line 40) | get ticks(){return this.hasAttribute("ticks")}
method ticks (line 40) | set ticks(t){t?this.setAttribute("ticks",""):this.removeAttribute("tic...
method disabled (line 40) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 40) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 40) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 40) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method range (line 40) | get range(){return this.hasAttribute("range")}
method dragging (line 40) | get dragging(){return this.getAttribute("dragging")}
method constructor (line 40) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
method connectedCallback (line 40) | connectedCallback(){this.setAttribute("value",this.value),this.#ta.obs...
method disconnectedCallback (line 40) | disconnectedCallback(){this.#ta.unobserve(this["#start-thumb"])}
method attributeChangedCallback (line 40) | attributeChangedCallback(t,e,i){e!==i&&!1!==this.isConnected&&("value"...
method #Zt (line 40) | #Zt(){this.#Xt()}
method #yn (line 40) | #yn(){this.#Xt()}
method #Cn (line 40) | #Cn(){this.#Xt()}
method #ia (line 40) | #ia(){this.#Xt()}
method #vt (line 40) | #vt(){this.#J()}
method #ea (line 40) | #ea(){let t=this["#start-thumb"].getBoundingClientRect();t.width!==thi...
method #Y (line 40) | #Y(t){if(!1===this.matches(":focus")){t.preventDefault();let e=Zn(this...
method #Xs (line 40) | #Xs(t){if(t.buttons>1||!1===t.isPrimary)return;let e,i,s=null,{width:n...
method #W (line 40) | #W(t){if("ArrowLeft"===t.code||"ArrowDown"===t.code){t.preventDefault(...
method #Xt (line 40) | #Xt(){if(Array.isArray(this.value)){let[t,e]=this.value,i=(t-this.min)...
method #J (line 40) | #J(){this.setAttribute("aria-disabled",this.disabled),this.disabled?(t...
class lr (line 40) | class lr extends HTMLElement{static observedAttributes=["disabled"];stat...
method disabled (line 41) | get disabled(){return!!this.hasAttribute("disabled")&&("increment"===t...
method disabled (line 41) | set disabled(t){!0===t?this.setAttribute("disabled",""):!1===t?this.re...
method constructor (line 41) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 41) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#na()})),Gn.addE...
method disconnectedCallback (line 41) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R),t...
method attributeChangedCallback (line 41) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#vt()}
method #na (line 41) | #na(){let t=getComputedStyle(this["#increment-arrow"]).getPropertyValu...
method #vt (line 41) | #vt(){this.hasAttribute("disabled")&&(this.removeAttribute("pressed"),...
method #Y (line 41) | #Y(t){let e=t.target.closest(".button"),i=null;if(e===this["#increment...
class hr (line 41) | class hr extends HTMLElement{static observedAttributes=["value"];static#...
method value (line 42) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 42) | set value(t){this.setAttribute("value",t)}
method size (line 42) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 42) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 42) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 42) | connectedCallback(){this.#Vi()}
method attributeChangedCallback (line 42) | attributeChangedCallback(t,e,i){e!==i&&"value"===t&&this.#Vi()}
method #Vi (line 42) | #Vi(){this["#preview"].style.background=this.value}
class dr (line 42) | class dr extends HTMLElement{static observedAttributes=["toggled","disab...
method toggled (line 43) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 43) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method mixed (line 43) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 43) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 43) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 43) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 43) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 43) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 43) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 43) | connectedCallback(){jn(100).then((()=>this["#indicator-thumb"].style.t...
method disconnectedCallback (line 43) | disconnectedCallback(){this["#indicator-thumb"].style.transition="none"}
method attributeChangedCallback (line 43) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t?this.#xt():"disa...
method #J (line 43) | #J(){this.setAttribute("role","switch"),this.setAttribute("aria-checke...
method #xt (line 43) | #xt(){this.setAttribute("aria-checked",this.mixed?"mixed":this.toggled)}
method #vt (line 43) | #vt(){this.#J()}
method #Y (line 43) | #Y(t){if(t.buttons>1)t.preventDefault();else if(!1===this.matches(":fo...
method #P (line 43) | async#P(t){this.mixed?this.mixed=!1:this.toggled=!this.toggled,this.di...
method #W (line 43) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
class cr (line 43) | class cr extends HTMLElement{static observedAttributes=["toggled","disab...
method value (line 44) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 44) | set value(t){this.setAttribute("value",t)}
method toggled (line 44) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 44) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method disabled (line 44) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 44) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 44) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 44) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 44) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 44) | connectedCallback(){this.#J()}
method attributeChangedCallback (line 44) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t||"disabled"===t)...
method animateSelectionIndicator (line 44) | animateSelectionIndicator(t){return new Promise((async e=>{if("0px"!==...
method #J (line 44) | #J(){this.setAttribute("role","tab"),this.setAttribute("aria-selected"...
method #Y (line 44) | async#Y(t){if(!1===this.matches(":focus")){t.preventDefault();let e=Zn...
class ur (line 44) | class ur extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method value (line 45) | get value(){let t=this.querySelector("x-tab[toggled]");return t?t.valu...
method value (line 45) | set value(t){let e=[...this.querySelectorAll("x-tab")],i=null===t?null...
method constructor (line 45) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 45) | connectedCallback(){this.setAttribute("role","tablist")}
method #P (line 45) | async#P(t){if(!(t.buttons>1)&&t.target.closest("x-tab")){let e=this.qu...
method #W (line 45) | #W(t){if("Enter"===t.code||"NumpadEnter"===t.code||"Space"===t.code){l...
class pr (line 45) | class pr extends HTMLElement{static#z=Ns`<template><div id="container"><...
method value (line 46) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
method value (line 46) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
method removable (line 46) | get removable(){return this.hasAttribute("removable")}
method removable (line 46) | set removable(t){t?this.setAttribute("removable",""):this.removeAttrib...
method toggled (line 46) | get toggled(){return this.hasAttribute("toggled")}
method toggled (line 46) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
method disabled (line 46) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 46) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method size (line 46) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 46) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 46) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 46) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#oa()})),this.#a...
method disconnectedCallback (line 46) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
method #ra (line 46) | #ra(t){t.buttons<=1&&this.dispatchEvent(new CustomEvent("remove",{bubb...
method #oa (line 46) | #oa(){let t=getComputedStyle(this["#remove-button"]).getPropertyValue(...
method #aa (line 46) | #aa(){0===this["#scope-slot"].assignedElements().length?this.removeAtt...
class mr (line 46) | class mr extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
method value (line 47) | get value(){return[...this.children].filter((t=>"x-tag"===t.localName)...
method value (line 47) | set value(t){let e=[...this.children].filter((t=>"x-tag"===t.localName...
method constructor (line 47) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method #Y (line 47) | #Y(t){if(t.buttons>1)t.preventDefault();else if(t.preventDefault(),!1=...
method #P (line 47) | #P(t){let e=t.target.closest("x-tag");e&&!1===t.defaultPrevented&&(e.t...
method #W (line 47) | #W(t){if(!1===t.defaultPrevented)if("Enter"===t.code||"NumpadEnter"===...
class br (line 47) | class br extends HTMLElement{static observedAttributes=["spellcheck","di...
method value (line 48) | get value(){return[...this.children].filter((t=>"x-tag"===t.localName)...
method delimiter (line 48) | get delimiter(){return this.hasAttribute("delimiter")?this.getAttribut...
method delimiter (line 48) | set delimiter(t){this.setAttribute("delimiter",t)}
method spellcheck (line 48) | get spellcheck(){return this.hasAttribute("spellcheck")}
method spellcheck (line 48) | set spellcheck(t){t?this.setAttribute("spellcheck",""):this.removeAttr...
method mixed (line 48) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 48) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 48) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 48) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method suggestions (line 48) | get suggestions(){return this.hasAttribute("suggestions")}
method suggestions (line 48) | set suggestions(t){t?this.setAttribute("suggestions",""):this.removeAt...
method size (line 48) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 48) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 48) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
method connectedCallback (line 48) | connectedCallback(){this.#da(),this.#J()}
method attributeChangedCallback (line 48) | attributeChangedCallback(t,e,i){e!==i&&("spellcheck"===t?this.#hs():"d...
method clear (line 48) | clear(){let t=[...this.children].filter((t=>"x-tag"===t.localName));if...
method getSuggestions (line 48) | getSuggestions(t){return[]}
method #ua (line 48) | #ua(){let t=this["#input"].value;if(this["#input"].value="",this.#pa()...
method #ma (line 48) | #ma(){this["#suggested-tags"].innerHTML="",!0===this["#suggestions-pop...
method #Y (line 48) | #Y(t){t.target===this&&!1===t.defaultPrevented&&(t.preventDefault(),th...
method #Xs (line 48) | #Xs(t){if(this.#ba=Nn(),t.target===this["#input"])this["#input"].value...
method #ra (line 48) | #ra(t){t.stopPropagation();let e=t.target;e.remove(),this.#da(),this.d...
method #hs (line 48) | #hs(){this["#input"].spellcheck=this.spellcheck}
method #vt (line 48) | #vt(){this.#J()}
method #la (line 48) | async#la(){this.dispatchEvent(new CustomEvent("textinputmodestart",{bu...
method #ha (line 48) | #ha(){this.#ua(),this.#da(),this.dispatchEvent(new CustomEvent("textin...
method #Tt (line 48) | #Tt(t){this["#input"].value.includes(this.delimiter)?(this.#ua(),this....
method #W (line 48) | #W(t){if("Enter"===t.code||"NumpadEnter"===t.code)t.target===this["#in...
method #Xt (line 48) | #Xt(){this.#da()}
method #da (line 48) | #da(){let t=this.querySelector(":scope > x-label");t&&(t.hidden=this.v...
method #J (line 48) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
method #pa (line 48) | #pa(){this["#input"].style.minWidth="0px",this["#input"].style.minWidt...
method #ga (line 48) | #ga(t=0,e=this["#input"].value.length){this["#input"].selectionStart=t...
method #ca (line 48) | #ca(t=!0){if(this.suggestions){let e=this["#input"].value;this["#input...
class gr (line 48) | class gr extends HTMLElement{static observedAttributes=["value","spellch...
method value (line 49) | get value(){return this["#editor"].textContent}
method value (line 49) | set value(t){if(this["#editor"].textContent=t,this.matches(":focus")){...
method spellcheck (line 49) | get spellcheck(){return this.hasAttribute("spellcheck")}
method spellcheck (line 49) | set spellcheck(t){t?this.setAttribute("spellcheck",""):this.removeAttr...
method minLength (line 49) | get minLength(){return this.hasAttribute("minlength")?parseInt(this.ge...
method minLength (line 49) | set minLength(t){this.setAttribute("minlength",t)}
method maxLength (line 49) | get maxLength(){return this.hasAttribute("maxlength")?parseInt(this.ge...
method maxLength (line 49) | set maxLength(t){this.setAttribute("maxlength",t)}
method required (line 49) | get required(){return this.hasAttribute("required")}
method required (line 49) | set required(t){t?this.setAttribute("required",""):this.removeAttribut...
method mixed (line 49) | get mixed(){return this.hasAttribute("mixed")}
method mixed (line 49) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
method disabled (line 49) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 49) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method validation (line 49) | get validation(){return this.hasAttribute("validation")?this.getAttrib...
method validation (line 49) | set validation(t){this.setAttribute("validation",t)}
method size (line 49) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 49) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method empty (line 49) | get empty(){return this.hasAttribute("empty")}
method error (line 49) | get error(){return this.hasAttribute("error")}
method constructor (line 49) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
method connectedCallback (line 49) | connectedCallback(){this.#J(),this.#zt(),"instant"===this.validation?t...
method attributeChangedCallback (line 49) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"spellc...
method reportValidity (line 49) | reportValidity(){let t=new CustomEvent("beforevalidate",{bubbles:!1,ca...
method setCustomValidity (line 49) | setCustomValidity(t){this.#rs=""===t?null:t,this.#Yt()}
method #Yt (line 49) | #Yt(){let t=this.#rs||this.#Et;t?this.setAttribute("error",""):this.re...
method #zt (line 49) | #zt(){0===this.value.length?this.setAttribute("empty",""):this.removeA...
method #J (line 49) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
method #Zt (line 49) | #Zt(){this.value=this.hasAttribute("value")?this.getAttribute("value")...
method #hs (line 49) | #hs(){this["#editor"].spellcheck=this.spellcheck}
method #vt (line 49) | #vt(){this["#editor"].contentEditable=this.disabled?"false":"plaintext...
method #ps (line 49) | #ps(){"instant"===this.validation?this.reportValidity():"auto"!==this....
method #P (line 49) | #P(){this.#Yt()}
method #Rt (line 49) | #Rt(){this.#fa=this.value,this.#Yt(),this.dispatchEvent(new CustomEven...
method #Pt (line 49) | #Pt(){this.dispatchEvent(new CustomEvent("textinputmodeend",{bubbles:!...
method #xa (line 49) | #xa(t){t.detail>=4&&document.execCommand("selectAll")}
method #fn (line 49) | #fn(t){this.dispatchEvent(new CustomEvent("input",{bubbles:!0})),this....
class fr (line 49) | class fr extends HTMLElement{static#z=Ns`<template><svg viewBox="0 0 100...
method size (line 50) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
method size (line 50) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
method constructor (line 50) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 50) | connectedCallback(){this.#Xt(),this.#wa.observe(this)}
method disconnectedCallback (line 50) | disconnectedCallback(){this.#wa.unobserve(this)}
method #Xt (line 50) | #Xt(){if(this.hidden||this.checkVisibility&&!1===this.checkVisibility(...
class xr (line 50) | class xr extends HTMLElement{static observedAttributes=["title"];static#...
method maximized (line 51) | get maximized(){return this.hasAttribute("maximized")}
method maximized (line 51) | set maximized(t){t?this.setAttribute("maximized",""):this.removeAttrib...
method constructor (line 51) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method connectedCallback (line 51) | async connectedCallback(){Gn.addEventListener("themechange",this.#R=()...
method disconnectedCallback (line 51) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
method #va (line 51) | #va(t){let e=t.target.closest("x-button");e&&this.dispatchEvent(new Cu...
method #ka (line 51) | #ka(){for(let t of this["#buttons"].children){let e=getComputedStyle(t...
class wr (line 51) | class wr extends HTMLElement{static observedAttributes=["disabled"];stat...
method type (line 52) | get type(){return this.hasAttribute("type")?this.getAttribute("type"):...
method type (line 52) | set type(t){this.setAttribute("type",t)}
method disabled (line 52) | get disabled(){return this.hasAttribute("disabled")}
method disabled (line 52) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
method opened (line 52) | get opened(){return this.hasAttribute("opened")}
method constructor (line 52) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
method attributeChangedCallback (line 52) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.disabled&&...
method disconnectedCallback (line 52) | disconnectedCallback(){this.close(!1)}
method open (line 52) | open(t,e=!0){return new Promise((async i=>{if(!1===this.opened&&this.i...
method close (line 52) | close(t=!0){return new Promise((async e=>{if(!0===this.opened){if(this...
method #_n (line 52) | #_n(t){let e=getComputedStyle(this).getPropertyValue("--align").trim()...
FILE: src/renderer/utils/bus.ts
type Resolver (line 1) | type Resolver<T> = (value: T) => void;
class MessageBus (line 3) | class MessageBus {
method constructor (line 6) | constructor() {
method send (line 10) | send<T>(channel: string, data: T): void {
method waitFor (line 18) | waitFor<T>(channel: string): Promise<T> {
FILE: src/renderer/utils/capitalize.ts
function capitalizeFirstLetter (line 1) | function capitalizeFirstLetter(val: string) {
FILE: src/renderer/utils/debounce.ts
function debounce (line 1) | function debounce(func: Function, timeout = 300): Function {
FILE: src/renderer/utils/getFreeRDP.ts
class FreeRDPInstallation (line 3) | class FreeRDPInstallation {
method constructor (line 7) | constructor(file: string, defaultArgs: string[] = []) {
method exec (line 12) | exec(args: string[]): Promise<{
method stringifyExec (line 19) | stringifyExec(args: string[]): string {
function getFreeRDP (line 33) | async function getFreeRDP() {
FILE: src/renderer/utils/icons.ts
function addWinBoatIconCollection (line 9) | function addWinBoatIconCollection(extraIcons?: IconifyIcons) {
FILE: src/renderer/utils/interval.ts
function setIntervalImmediately (line 4) | function setIntervalImmediately(func: Function, interval: number): NodeJ...
FILE: src/renderer/utils/log.ts
function createLogger (line 5) | function createLogger(filePath: string) {
FILE: src/renderer/utils/openLink.ts
function openLink (line 3) | function openLink(link: string) {
function openAnchorLink (line 11) | function openAnchorLink(e: MouseEvent) {
FILE: src/renderer/utils/port.ts
type PortType (line 5) | enum PortType {
type Port (line 10) | type Port = number;
type PortEntryOptions (line 12) | type PortEntryOptions = {
class Range (line 17) | class Range {
method constructor (line 35) | constructor(_tokenOrStart: number | string, _end?: number) {
method toString (line 50) | toString(): string {
method isRange (line 57) | static isRange(value: Port | Range): boolean {
class ComposePortEntry (line 64) | class ComposePortEntry {
method constructor (line 82) | constructor(_entryOrHostPort: string | number, _guestPort?: number, _o...
method entry (line 104) | get entry(): string {
method parseProtocol (line 109) | static parseProtocol(entry: string): PortEntryProtocol {
method parsePortOrRange (line 123) | private static parsePortOrRange(token: string): Port | Range {
method parsePort (line 136) | static parsePort(type: PortType, entry: string): Port | Range {
method checkValidIP (line 151) | private static checkValidIP(ip: string, entry: string): string {
method parseIP (line 163) | static parseIP(entry: string): string {
class ComposePortMapper (line 191) | class ComposePortMapper {
method constructor (line 201) | constructor(compose: ComposeConfig) {
method pushPortEntry (line 215) | private pushPortEntry(entry: string | LongPortMapping) {
method findGuestPortIndex (line 227) | private findGuestPortIndex(guestPort: number | string, protocol: PortE...
method getShortPortMapping (line 244) | getShortPortMapping(guestPort: number | string, protocol: PortEntryPro...
method setShortPortMapping (line 258) | setShortPortMapping(
method hasShortPortMapping (line 286) | hasShortPortMapping(guestPort: string | number, protocol: PortEntryPro...
method composeFormat (line 297) | get composeFormat(): string[] {
method isPortOpen (line 314) | static async isPortOpen(port: number | string): Promise<boolean> {
FILE: src/renderer/window.d.ts
type Specs (line 1) | type Specs = import("../types").Specs;
type Window (line 3) | interface Window {
FILE: src/types.ts
type Specs (line 5) | type Specs = {
type InstallConfiguration (line 12) | type InstallConfiguration = {
type WinApp (line 26) | type WinApp = {
type CustomAppCallbacks (line 36) | type CustomAppCallbacks = {
type PortEntryProtocol (line 40) | type PortEntryProtocol = "tcp" | "udp";
type LongPortMapping (line 42) | type LongPortMapping = {
type ComposeConfig (line 52) | type ComposeConfig = {
type Metrics (line 91) | type Metrics = {
type GuestServerVersion (line 108) | type GuestServerVersion = {
type GuestServerUpdateResponse (line 114) | type GuestServerUpdateResponse = {
type USBDevice (line 120) | type USBDevice = {
Condensed preview — 102 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,127K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 890,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".github/ISSUE_TEMPLATE/1-bug-report.yml",
"chars": 2632,
"preview": "name: 🚨 Bug Report\ndescription: Report an issue that you've encountered\ntitle: \"[Bug] \"\nlabels:\n - bug\n - needs-tr"
},
{
"path": ".github/ISSUE_TEMPLATE/2-feature-request.yml",
"chars": 1384,
"preview": "name: 🧩 Feature Request\ndescription: Suggest a new feature, enhancement, or just share your idea\ntitle: \"[Feature] \"\nlab"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 184,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: Ask for Help\n about: If you have any questions regarding Win"
},
{
"path": ".github/renovate.json5",
"chars": 474,
"preview": "{\n $schema: \"https://docs.renovatebot.com/renovate-schema.json\",\n extends: [\"config:recommended\", \":disableRateLim"
},
{
"path": ".github/workflows/release.yml",
"chars": 9164,
"preview": "name: Build WinBoat\npermissions:\n contents: write\non:\n push:\n branches:\n - main\n tags:\n "
},
{
"path": ".gitignore",
"chars": 188,
"preview": "node_modules\ndist\nbuild\n\n.vscode\n.idea\n\nresult\n\npackage-lock.json\n# src/renderer/public/*\n\n# Custom\n# *.exe\ntemp\nguest_s"
},
{
"path": ".npmrc",
"chars": 18,
"preview": "engine-strict=true"
},
{
"path": ".prettierignore",
"chars": 47,
"preview": "\n# Ignore xel's files\n/src/renderer/public/xel\n"
},
{
"path": ".prettierrc",
"chars": 73,
"preview": "{\n \"tabWidth\": 4,\n \"printWidth\": 120,\n \"arrowParens\": \"avoid\"\n}\n"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 489,
"preview": "The WinBoat code of conduct is derived from [Ladybird](https://github.com/LadybirdBrowser/ladybird/blob/master/CODE_OF_C"
},
{
"path": "CONTRIBUTING.md",
"chars": 4297,
"preview": "# WinBoat Contribution Guidelines\n\nThis document outlines the general contribution guidelines that apply to WinBoat.\n\n> "
},
{
"path": "LICENSE",
"chars": 1065,
"preview": "MIT License\n\nCopyright (c) 2026 TibixDev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
},
{
"path": "README.md",
"chars": 8565,
"preview": "<div align=\"left\">\n <table>\n <tr>\n <td>\n <img src=\"icons/winboat_logo.svg\" alt=\"WinBoat Logo\" width=\"150"
},
{
"path": "SECURITY.md",
"chars": 946,
"preview": "# Security Policy\n\nWinBoat takes security very seriously, if you believe you have found a security vulnerability within "
},
{
"path": "build-guest-server.sh",
"chars": 1429,
"preview": "#!/bin/bash\nset -e\n\necho \"Building guest server...\"\n\n# Variables\nexport GOOS=windows\nexport GOARCH=amd64\nexport PACKAGE="
},
{
"path": "data/usb.ids",
"chars": 730501,
"preview": "#\n#\tList of USB ID's\n#\n#\tMaintained by Stephen J. Gowdy <linux.usb.ids@gmail.com>\n#\tIf you have any new entries, please "
},
{
"path": "electron-builder.json",
"chars": 1251,
"preview": "{\n \"appId\": \"com.teabox.winboat\",\n \"productName\": \"WinBoat\",\n \"directories\": {\n \"output\": \"dist\"\n },\n"
},
{
"path": "guest_server/RDPApps.reg",
"chars": 998,
"preview": "Windows Registry Editor Version 5.00\n\n ; Disable RemoteApp allowlist so all applications can be used in Remote Deskto"
},
{
"path": "guest_server/argon2.go",
"chars": 1930,
"preview": "package main\n\nimport (\n\t\"crypto/subtle\"\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"golang.org/x/crypto/argon2\"\n)\n"
},
{
"path": "guest_server/go.mod",
"chars": 466,
"preview": "module winboat-server\n\ngo 1.24.2\n\nrequire (\n\tgithub.com/gorilla/mux v1.8.1\n\tgithub.com/rs/cors v1.11.1\n\tgithub.com/shiro"
},
{
"path": "guest_server/go.sum",
"chars": 2310,
"preview": "github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.m"
},
{
"path": "guest_server/install.bat",
"chars": 1172,
"preview": "@echo off\nset INSTALL_DIR=C:\\Program Files\\WinBoat\nset EXE_PATH=%INSTALL_DIR%\\winboat_guest_server.exe\nset TIME_SYNC_SCR"
},
{
"path": "guest_server/main.go",
"chars": 10185,
"preview": "//go:build windows\n// +build windows\n\npackage main\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\""
},
{
"path": "guest_server/nssm.sha1.txt",
"chars": 40,
"preview": "f280858dcfefabc1a9a006a57f6b266a5d1fde8e"
},
{
"path": "guest_server/scripts/apps.ps1",
"chars": 26771,
"preview": "#Requires -Version 5.1\n#Requires -RunAsAdministrator\n\n#-----------------------------------------------------------------"
},
{
"path": "guest_server/scripts/get-icon.ps1",
"chars": 5830,
"preview": "#Requires -Version 5.1\n\n# WinBoat - Icon Extraction Helper\n#\n# Usage:\n# powershell -ExecutionPolicy Bypass -File icon."
},
{
"path": "guest_server/scripts/time-sync.bat",
"chars": 58,
"preview": "@echo off\nnet stop w32time\nnet start w32time\nw32tm /resync"
},
{
"path": "guest_server/scripts/update.ps1",
"chars": 7284,
"preview": "param(\n [Parameter(Mandatory=$true)]\n [string]$AppPath,\n \n [Parameter(Mandatory=$true)]\n [string]$UpdateF"
},
{
"path": "guest_server/securekey.go",
"chars": 4526,
"preview": "package main\n\nimport (\n\t\"fmt\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n\t\"golang.org/x/sys/windows/registry\"\n)\n\nvar (\n\tadva"
},
{
"path": "guest_server/util.go",
"chars": 456,
"preview": "//go:build windows\n// +build windows\n\npackage main\n\nimport (\n\t\"log\"\n\t\"os\"\n)\n\nfunc checkErr(err error) {\n\tif err != nil {"
},
{
"path": "package.json",
"chars": 1848,
"preview": "{\n \"name\": \"winboat\",\n \"version\": \"0.9.0\",\n \"description\": \"Windows for Penguins\",\n \"type\": \"module\",\n \"m"
},
{
"path": "postcss.config.ts",
"chars": 93,
"preview": "export default {\n plugins: {\n tailwindcss: {},\n autoprefixer: {},\n },\n};\n"
},
{
"path": "scripts/build.ts",
"chars": 1012,
"preview": "import Path from \"path\";\nimport Chalk from \"chalk\";\nimport FileSystem from \"fs\";\nimport * as Vite from \"vite\";\nimport co"
},
{
"path": "scripts/dev-server.ts",
"chars": 3477,
"preview": "process.env.NODE_ENV = \"development\";\n\nimport * as Vite from \"vite\";\nimport ChildProcess, { type ChildProcessWithoutNull"
},
{
"path": "scripts/private/tsc.ts",
"chars": 614,
"preview": "import ChildProcess from \"child_process\";\nimport Chalk from \"chalk\";\n\nexport default function compile(directory) {\n r"
},
{
"path": "src/main/main.ts",
"chars": 4263,
"preview": "import { app, BrowserWindow, ipcMain, session, dialog } from \"electron\";\nimport { join } from \"path\";\nimport { initializ"
},
{
"path": "src/main/static/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "src/main/tsconfig.json",
"chars": 351,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"esnext\",\n \"module\": \"nodenext\",\n \"strict\": true,\n \"es"
},
{
"path": "src/renderer/App.vue",
"chars": 14179,
"preview": "<template>\n <main \n class=\"overflow-hidden relative w-screen h-screen\"\n :class=\"{ animationsDisabled: '"
},
{
"path": "src/renderer/assets/LICENSE.txt",
"chars": 1065,
"preview": "MIT License\n\nCopyright (c) 2026 TibixDev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
},
{
"path": "src/renderer/components/ConfigCard.vue",
"chars": 5177,
"preview": "<template>\n <x-card\n class=\"flex flex-row justify-between items-center p-2 py-3 my-0 w-full backdrop-blur-xl b"
},
{
"path": "src/renderer/components/WBContextMenu.vue",
"chars": 4710,
"preview": "<!--\n WBContextMenu - Replacement for broken xel contextmenu component\n This is a working reimplementation of the xel "
},
{
"path": "src/renderer/components/WBMenuItem.vue",
"chars": 1914,
"preview": "<!--\n WBMenuItem - Replacement for broken xel menuitem component\n This is a working reimplementation of the xel toolki"
},
{
"path": "src/renderer/data/appicons.ts",
"chars": 37663,
"preview": "import { InternalApps } from \"../data/internalapps\";\n\nexport const DEFAULT_ICON = \"DEFAULT_ICON\";\n\nexport const AppIcons"
},
{
"path": "src/renderer/data/docker.ts",
"chars": 1583,
"preview": "import { ComposeConfig } from \"../../types\";\nimport { RESTART_ON_FAILURE } from \"../lib/constants\";\n\nexport const DOCKER"
},
{
"path": "src/renderer/data/internalapps.ts",
"chars": 151,
"preview": "export const InternalApps = {\n WINDOWS_DESKTOP: \"WINDOWS_DESKTOP\",\n WINDOWS_EXPLORER: \"WINDOWS_EXPLORER\",\n NOVN"
},
{
"path": "src/renderer/data/podman.ts",
"chars": 1500,
"preview": "import { ComposeConfig } from \"../../types\";\nimport { RESTART_ON_FAILURE } from \"../lib/constants\";\n\nexport const PODMAN"
},
{
"path": "src/renderer/directives/autoscroll.ts",
"chars": 2067,
"preview": "// auto-scroll.ts\nimport type { Directive, DirectiveBinding } from \"vue\";\n\ninterface ScrollOptions {\n behavior?: Scro"
},
{
"path": "src/renderer/index.css",
"chars": 756,
"preview": "@import url(\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap\");\n@tailwin"
},
{
"path": "src/renderer/index.html",
"chars": 583,
"preview": "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"widt"
},
{
"path": "src/renderer/lib/config.ts",
"chars": 7194,
"preview": "const fs: typeof import(\"fs\") = require(\"node:fs\");\nconst path: typeof import(\"path\") = require(\"node:path\");\nimport { t"
},
{
"path": "src/renderer/lib/constants.ts",
"chars": 2116,
"preview": "const os: typeof import(\"os\") = require(\"node:os\");\nconst path: typeof import(\"path\") = require(\"node:path\");\n\n// Should"
},
{
"path": "src/renderer/lib/containers/common.ts",
"chars": 1869,
"preview": "import { PortEntryProtocol } from \"../../../types\";\nimport { ContainerManager } from \"./container\";\nimport { DockerConta"
},
{
"path": "src/renderer/lib/containers/container.ts",
"chars": 1543,
"preview": "import { ComposeConfig } from \"../../../types\";\nimport { WINBOAT_DIR } from \"../constants\";\nimport { createLogger } from"
},
{
"path": "src/renderer/lib/containers/docker.ts",
"chars": 7845,
"preview": "import { ComposeConfig } from \"../../../types\";\nimport { DOCKER_DEFAULT_COMPOSE } from \"../../data/docker\";\nimport { cap"
},
{
"path": "src/renderer/lib/containers/podman.ts",
"chars": 7314,
"preview": "import { ComposeConfig } from \"../../../types\";\nimport { PODMAN_DEFAULT_COMPOSE } from \"../../data/podman\";\nimport { WIN"
},
{
"path": "src/renderer/lib/exec-helper.ts",
"chars": 1202,
"preview": "const { execFile }: typeof import(\"child_process\") = require(\"node:child_process\");\nconst { promisify }: typeof import(\""
},
{
"path": "src/renderer/lib/install.ts",
"chars": 12983,
"preview": "import { type InstallConfiguration } from \"../../types\";\nimport { WINBOAT_DIR } from \"./constants\";\nimport { createLogge"
},
{
"path": "src/renderer/lib/migrate.ts",
"chars": 2866,
"preview": "import { createLogger } from \"../utils/log\";\nimport { ComposePortMapper, Range } from \"../utils/port\";\nimport { WinboatC"
},
{
"path": "src/renderer/lib/qmp.ts",
"chars": 7916,
"preview": "import { WINBOAT_DIR } from \"./constants\";\nimport { createLogger } from \"../utils/log\";\nconst path: typeof import(\"path\""
},
{
"path": "src/renderer/lib/specs.ts",
"chars": 3075,
"preview": "import { getFreeRDP } from \"../utils/getFreeRDP\";\nimport { ContainerSpecs } from \"./containers/common\";\nconst fs: typeof"
},
{
"path": "src/renderer/lib/usbmanager.ts",
"chars": 21041,
"preview": "import { type Device } from \"usb\";\nimport { type Ref, ref, watch } from \"vue\";\nimport { logger, Winboat } from \"./winboa"
},
{
"path": "src/renderer/lib/winboat.ts",
"chars": 30535,
"preview": "import { ref, type Ref } from \"vue\";\nimport { WINBOAT_DIR } from \"./constants\";\nimport type {\n ComposeConfig,\n Cus"
},
{
"path": "src/renderer/main.ts",
"chars": 1089,
"preview": "import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport { router } from \"./router\";\nimport { MotionPlugin }"
},
{
"path": "src/renderer/public/xel/CHANGELOG.md",
"chars": 18335,
"preview": "\n# CHANGELOG\n\n## 0.36.2 (2025-07-28)\n\n- [Fixed] `<x-menubar>` fails to update correctly on Firefox when using `slot=\"asi"
},
{
"path": "src/renderer/public/xel/LICENSE.md",
"chars": 15874,
"preview": "\n# INTRO\n\nThis document defines the licensing terms for the Xel package distributed on NPM\nand the Xel source code distr"
},
{
"path": "src/renderer/public/xel/README.md",
"chars": 869,
"preview": "\n# Xel ([DEMO](https://xel-toolkit.org))\n\n[](https://www.npmjs.org"
},
{
"path": "src/renderer/public/xel/package.json",
"chars": 587,
"preview": "{\"name\":\"xel\",\"version\":\"0.36.2\",\"type\":\"module\",\"browser\":\"xel.js\",\"description\":\"Widget toolkit for building native-li"
},
{
"path": "src/renderer/public/xel/themes/adwaita-dark.css",
"chars": 37614,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/themes/adwaita.css",
"chars": 37744,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/themes/base.css",
"chars": 25578,
"preview": "\n\n/*****************************************************************************************************************/\n\n/"
},
{
"path": "src/renderer/public/xel/themes/cupertino-dark.css",
"chars": 38523,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/themes/cupertino.css",
"chars": 38911,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/themes/fluent-dark.css",
"chars": 48869,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/themes/fluent.css",
"chars": 48595,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/themes/material-dark.css",
"chars": 47105,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/themes/material.css",
"chars": 45786,
"preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
},
{
"path": "src/renderer/public/xel/xel.js",
"chars": 454104,
"preview": "if(!1===MouseEvent.prototype.hasOwnProperty(\"pointerType\")&&Object.defineProperty(MouseEvent.prototype,\"pointerType\",{ge"
},
{
"path": "src/renderer/router.ts",
"chars": 1219,
"preview": "import { createMemoryHistory, createRouter, RouteRecordRaw } from \"vue-router\";\n\nimport Home from \"./views/Home.vue\";\nim"
},
{
"path": "src/renderer/tsconfig.json",
"chars": 457,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"esnext\",\n \"useDefineForClassFields\": true,\n \"module\": \"esnex"
},
{
"path": "src/renderer/utils/bus.ts",
"chars": 562,
"preview": "type Resolver<T> = (value: T) => void;\n\nexport class MessageBus {\n private readonly resolvers: Map<string, Resolver<a"
},
{
"path": "src/renderer/utils/capitalize.ts",
"chars": 126,
"preview": "export function capitalizeFirstLetter(val: string) {\n return String(val).charAt(0).toUpperCase() + String(val).slice("
},
{
"path": "src/renderer/utils/debounce.ts",
"chars": 316,
"preview": "export function debounce(func: Function, timeout = 300): Function {\n let timer: NodeJS.Timeout;\n return (...args: "
},
{
"path": "src/renderer/utils/getFreeRDP.ts",
"chars": 1263,
"preview": "import { execFileAsync, stringifyExecFile } from \"../lib/exec-helper\";\n\nexport class FreeRDPInstallation {\n file: str"
},
{
"path": "src/renderer/utils/icons.ts",
"chars": 593,
"preview": "import { addCollection } from \"@iconify/vue\";\nimport { type IconifyIcons } from \"@iconify/types\";\n\n/**\n * Creates custom"
},
{
"path": "src/renderer/utils/interval.ts",
"chars": 243,
"preview": "/**\n * Sets an interval but also executes `func` immediately\n */\nexport function setIntervalImmediately(func: Function, "
},
{
"path": "src/renderer/utils/log.ts",
"chars": 1191,
"preview": "import { createConsola } from \"consola\";\nconst { writeFileSync, appendFileSync, mkdirSync }: typeof import(\"fs\") = requi"
},
{
"path": "src/renderer/utils/openLink.ts",
"chars": 469,
"preview": "const { shell }: typeof import(\"@electron/remote\") = require(\"@electron/remote\");\n\nexport function openLink(link: string"
},
{
"path": "src/renderer/utils/port.ts",
"chars": 11278,
"preview": "import { type ComposeConfig, LongPortMapping, type PortEntryProtocol } from \"../../types\";\n\nconst { createServer, isIPv4"
},
{
"path": "src/renderer/views/About.vue",
"chars": 1201,
"preview": "<template>\n <div class=\"flex flex-col items-center justify-center h-[calc(100vh-9rem)]\">\n <img class=\"w-48\" sr"
},
{
"path": "src/renderer/views/Apps.vue",
"chars": 22021,
"preview": "<template>\n <div>\n <dialog ref=\"addCustomAppDialog\">\n <h3 class=\"mb-2\">{{ currentAppForm.Source ==="
},
{
"path": "src/renderer/views/Blank.vue",
"chars": 143,
"preview": "<template>\n <div class=\"flex justify-center items-center mt-40\">\n <x-throbber class=\"w-16 h-16\"></x-throbber>\n"
},
{
"path": "src/renderer/views/Config.vue",
"chars": 37935,
"preview": "<template>\n <div class=\"flex flex-col gap-10 overflow-x-hidden\" :class=\"{ hidden: !maxNumCores }\">\n <div>\n "
},
{
"path": "src/renderer/views/Home.vue",
"chars": 11623,
"preview": "<template>\n <div>\n <x-card\n class=\"bg-neutral-800/20 backdrop-brightness-150 backdrop-blur-xl flex "
},
{
"path": "src/renderer/views/Migration.vue",
"chars": 2286,
"preview": "<template>\n <div class=\"flex flex-col gap-2 justify-center items-center mt-12\">\n <div id=\"stepIcon\" class=\"fle"
},
{
"path": "src/renderer/views/SetupUI.vue",
"chars": 60540,
"preview": "<template>\n <div class=\"relative size-full p-16 overflow-hidden\">\n <div class=\"size-full rounded-3xl bg-[#1F1F"
},
{
"path": "src/renderer/vite-env.d.ts",
"chars": 195,
"preview": "/// <reference types=\"vite/client\" />\n\ndeclare module \"*.vue\" {\n import type { DefineComponent } from \"vue\";\n cons"
},
{
"path": "src/renderer/window.d.ts",
"chars": 347,
"preview": "type Specs = import(\"../types\").Specs;\n\ninterface Window {\n electronAPI: {\n executeShellCommand: (command: str"
},
{
"path": "src/types.ts",
"chars": 3089,
"preview": "import { type WindowsVersionKey } from \"./renderer/lib/constants\";\nimport { ContainerRuntimes } from \"./renderer/lib/con"
},
{
"path": "tailwind.config.ts",
"chars": 297,
"preview": "/** @type {import('tailwindcss').Config} */\nexport default {\n content: [\"./src/renderer/index.html\", \"./src/renderer/"
},
{
"path": "vite.config.ts",
"chars": 926,
"preview": "import path from \"path\";\nimport vuePlugin from \"@vitejs/plugin-vue\";\nimport { defineConfig } from \"vite\";\nimport * as pa"
}
]
About this extraction
This page contains the full source code of the TibixDev/winboat GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 102 files (1.9 MB), approximately 681.7k tokens, and a symbol index with 1630 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.