isa0060/serio0/input0
     h      isa0060/serio0/input0
  
   355 c    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>
  "   	li~h8Z!\e1h߿g '    	# Copyright (C) 2017 Red Hat, Inc., Bryn M. Reeves <bmr@redhat.com>
# This file is part of the sos project: https://github.com/sosreport/sos
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# version 2 of the GNU General Public License.
#
# See the LICENSE file in the source distribution for further information.

from sos.plugins import Plugin, RedHatPlugin


class Boom(Plugin, RedHatPlugin):
    """Configuration data for the boom boot manager.
    """

    plugin_name = 'boom'
    profiles = ('boot', 'system')

    packages = (
        'lvm2-python-boom',
        'python-boom',
        'python2-boom',
        'python3-boom'
    )

    def setup(self):
        self.add_copy_spec([
            "/boot/boom",
            "/boot/loader/entries",
            "/etc/default/boom",
            "/etc/grub.d/42_boom"
        ])

        self.add_cmd_output([
            "boom list -VV",
            "boom profile list -VV"
        ])

# vim: set et ts=4 sw=4 :
  "   li~e8Yn2Ҙoh      usb-0000:00:01.2-2/input0
  "   li~e8Y.6Ҙoh      13:67
  #   li~h
n˪bѿ ?     # Copyright (C) 2011-2014 Red Hat, Inc.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson

import hashlib

import os
import unittest
import re

import sys
import syslog

try:
    # Python 3.8 required change
    from collections.abc import Sequence
except ImportError:
    from collections import Sequence

import inspect

try:
    from urllib.error import (URLError, HTTPError)
    from urllib.parse import urlparse
except ImportError:
    from urllib2 import (URLError,
                         HTTPError)
    from urlparse import urlparse
import functools
import traceback
import six
import ssl
import socket


def default_property(name, allow_set=True, doc=None):
    """
    Creates the get/set properties for the given name.  It assumes that the
    actual attribute is '_' + name

    TODO: Expand this with domain validation to ensure the values are correct.
    """
    attribute_name = '_' + name

    def getter(self):
        return getattr(self, attribute_name)

    def setter(self, value):
        setattr(self, attribute_name, value)

    prop = property(getter, setter if allow_set else None, None, doc)

    def decorator(cls):
        setattr(cls, name, prop)
        return cls

    return decorator


def common_urllib2_error_handler(exp):

    if isinstance(exp, HTTPError):
        raise LsmError(ErrorNumber.PLUGIN_AUTH_FAILED, str(exp))
    if isinstance(exp, URLError):
        desc = str(exp)
        if 'urlopen error' in desc:
            if 'Errno 111' in desc:
                raise LsmError(ErrorNumber.NETWORK_CONNREFUSED,
                               'Connection refused')
            if 'Errno 113' in desc:
                raise LsmError(ErrorNumber.NETWORK_HOSTDOWN,
                    