netctl wifi-menu

#! /bin/bash

. /usr/lib/netctl/globals
. "$SUBR_DIR/interface"
. "$SUBR_DIR/rfkill"
. "$SUBR_DIR/wpa"


usage() {
    cat << END
Usage: wifi-menu [-h | --help] [-o | --obscure] [INTERFACE]

Interactively connect to a wireless network on INTERFACE using netctl.
If only one wireless interface is available, INTERFACE can be omitted.

Arguments:
  -h, --help     Show this help
  -o, --obscure  Show asterisks for the characters of the password
                 and store the password as a hexadecimal string
END
}

# Undo printf escaping in $1
printf_decode() {
    printf -- "${1//%/%%}"
}

# Prepare $1 for use in a special quoting context
quote_safe() {
    if [[ "$1" = \"* ]]; then
        printf '""%s"' "$1"
    else
        printf "%s" "$1"
    fi
}

# Fill PROFILES and ESSIDS with the profile names and essids and fill GENERATED
# with the names of automatically generated profiles for interface $1
init_profiles() {
    local i=0 essid profile
    while IFS= read -r profile; do
        # Sandbox the sourcing of profiles
        essid=$(
            source "$PROFILE_DIR/$profile" > /dev/null
            if [[ "$Interface" = "$1" && -n "$ESSID" ]]; then
                if [[ "$ESSID" = \"\"*\" ]]; then
                    ESSID=${ESSID:2:-1}
                fi
                printf "%s" "$ESSID"
                if [[ "$Description" =~ "Automatically generated" ]]; then
                    return 2
                else
                    return 1
                fi
            fi
            return 0
        )
        case $? in
            2)
                GENERATED+=("$profile")
                ;&
            1)
                PROFILES[i]=$profile
                ESSIDS[i]=$essid
                (( ++i ))
                ;;
        esac
    done < <(list_profiles)
}

# Build ENTRIES as an argument list for dialog based on scan results in $1
init_entries() {
    local i=0 sep=$'\t' decoded flags signal ssid
    while IFS=$'\t' read -r signal flags ssid; do
        decoded=$(printf_decode "$ssid")
        ENTRIES[i++]="--"  # the SSID might look like an option to dialog
        if [[ "$CHARMAP" = "UTF-8" ]]; then
            ENTRIES[i++]=$decoded
        else
            ENTRIES[i++]=$ssid
        fi
        if is_yes "${CONNECTED:-no}" && [[ "$decoded" = "$CONNECTION" ]]; then
            ENTRIES[i]="*"  # Currently connected
        elif in_array "$decoded" "${ESSIDS[@]}"; then
            if in_array "$(ssid_to_profile "$decoded")" "${GENERATED[@]}"; then
                ENTRIES[i]="."  # Automatically generated
            else
                ENTRIES[i]=":"  # Handmade
            fi
        else
            ENTRIES[i]=" "  # Not present
        fi
        if [[ "$flags" =~ WPA2|WPA|WEP ]]; then
            ENTRIES[i]+="${sep}${BASH_REMATCH[0],,}"
        else
            ENTRIES[i]+="${sep}none"
        fi
        ENTRIES[i]+="   ${sep}${signal}"
        (( ++i ))
    done < "$1"
}

# Find a profile name for ssid $1
ssid_to_profile() {
    local i
    for i in $(seq 0 $((${#ESSIDS[@]}-1))); do
        if [[ "$1" = "${ESSIDS[i]}" ]]; then
            printf "%s" "${PROFILES[i]}"
            return 0
        fi
    done
    return 1
}

# Ask the user for the name of the new profile
confirm_profile() {
    local msg="Enter a name for the new profile\n"
    PROFILE=$(dialog --inputbox "$msg" 10 50 "$PROFILE" --stdout) || return $?
    if [[ "$PROFILE" = */* ]]; then
        PROFILE=${PROFILE//\//_}
        confirm_profile
    elif [[ -e "$PROFILE_DIR/$PROFILE" ]]; then
        msg="A profile by the name '$PROFILE' already exists.
Do you want to overwrite it?"
        dialog --yesno "$msg" 10 50 --stdout || confirm_profile
    fi
}

# Create a profile for ssid $1
create_profile() {
    local box flags key msg security signal ssid
    PROFILE=$(iconv -c -f UTF-8 -t //TRANSLIT <<< "$1")
    PROFILE="$INTERFACE-${PROFILE//[?\/]/_}"
    [[ -e "$PROFILE_DIR/$PROFILE" ]] && PROFILE+=".wifi-menu"
    confirm_profile || return $?
    while IFS=$'\t' read -r signal flags ssid; do
        [[ "$(printf_decode "$ssid")" != "$1" ]] || break
    done < "$NETWORKS"
    if [[ "$flags" =~ WPA|WEP ]]; then
        security=${BASH_REMATCH[0],,}
    else
        security=none
    fi
    if [[ "$flags" =~ PSK|WEP ]]; then
        if is_yes "${OBSCURE:-no}"; then
            box="--insecure --passwordbox"
        else
            box="--inputbox"
        fi
        msg="Enter $security security key for\n'$1'"
        key=$(dialog $box "$msg" 10 40 --stdout) || return $?
        if [[ "${BASH_REMATCH[0]}" = "WEP" ]]; then
            if [[ "$key" = +([[:xdigit:]][[:xdigit:]]) ]]; then
                key="\"$key"
            else
                key=$(quote_safe "$key")
            fi
        elif [[ ${#key} -ge 8 && ${#key} -le 63 ]]; then
            if is_yes "${OBSCURE:-no}"; then
                key="\"$(wpa_passphrase "$1" "$key" | sed -n "s/^[[:space:]]*psk=//p")"
            else
                key=$(quote_safe "$key")
            fi
        elif [[ ${#key} -eq 64 && "$key" = +([[:xdigit:]]) ]]; then
            key="\"$key"
        else
            return 4
        fi
    fi
    cat << EOF > "$PROFILE_DIR/$PROFILE"
Description='Automatically generated profile by wifi-menu'
Interface=$INTERFACE
Connection=wireless
Security=$security
ESSID=$(printf "%q" "$(quote_safe "$1")")
IP=dhcp
${key+Key=$(printf "%q" "$key")}
EOF
    printf "%s" "$PROFILE"
    return 0
}

# Connect to ssid $1 using an available profile or an automatically created one
# if none exists
connect_to_ssid() {
    local msg
    PROFILE=$(ssid_to_profile "$1")
    if [[ $? -ne 0 ]]; then
        PROFILE=$(create_profile "$1") || return $?
        NEW_PROFILE=yes
    fi
    clear
    if systemctl is-active --quiet "[email protected]$INTERFACE.service"; then
        report_notice "Interface '$INTERFACE' is controlled by netctl-auto"
        if is_yes "${NEW_PROFILE:-no}"; then
            do_debug systemctl restart "[email protected]$INTERFACE.service"
        fi
        do_debug netctl-auto switch-to "$PROFILE"
    elif ! netctl switch-to "$PROFILE"; then
        if is_yes "${NEW_PROFILE:-no}"; then
            msg="         CONNECTING FAILED

Do you want to keep the generated profile ('$PROFILE')?"
            dialog --yesno "$msg" 10 40 --stdout || rm "$PROFILE_DIR/$PROFILE"
            clear
        fi
        return 2
    fi
    return 0
}


while [[ "$1" = -* ]]; do
    case "$1" in
        -h|--help)
            usage
            exit
            ;;
        -o|--obscure)
            OBSCURE=yes
            shift
            ;;
        -*)
            report_error "Invalid option: $1"
            usage
            exit 255
            ;;
    esac
done
if [[ $# -gt 1 ]]; then
    report_error "Too many arguments"
    usage
    exit 255
fi

ensure_root "$(basename "$0")"
if ! type dialog &> /dev/null; then
    exit_error "Please install 'dialog' to use wifi-menu"
fi
CHARMAP=$(locale charmap)
cd /  # We do not want to spawn anything that can block unmounting

INTERFACE=$1
if [[ -z "$INTERFACE" ]]; then
    INTERFACE=(/sys/class/net/*/wireless/)
    if [[ ${#INTERFACE[@]} -ne 1 || ! -d "$INTERFACE" ]]; then
        report_error "Invalid interface specification"
        usage
        exit 255
    fi
    INTERFACE=${INTERFACE:15:-10}
    report_debug "Using interface '$INTERFACE'"
elif ! is_interface "$INTERFACE"; then
    exit_error "No such interface: $INTERFACE"
fi
load_interface_config "$INTERFACE"

if [[ "$RFKill" && "$(rf_status "$INTERFACE" "$RFKill")" ]]; then
    if ! rf_enable "$INTERFACE" "$RFKill"; then
        exit_error "Could not unblock transmission on interface '$INTERFACE'"
    fi
    RF_UNBLOCKED=yes
fi

echo -n "Scanning for networks... "
if CONNECTION=$(wpa_call "$INTERFACE" status 2> /dev/null | grep -m 1 "^ssid="); then
    CONNECTION=$(printf_decode "${CONNECTION#ssid=}")
    CONNECTED=yes
fi
NETWORKS=$(wpa_supplicant_scan "$INTERFACE" 3,4,5)
RETURN=$?

if is_yes "${RF_UNBLOCKED:-no}"; then
    rf_disable "$INTERFACE" "$RFKill"
fi

if (( RETURN == 0 )); then
    trap 'rm -f "$NETWORKS"' EXIT
    echo "done"
    init_profiles "$INTERFACE"
    init_entries "$NETWORKS"
    MSG="Select the network you wish to use
Flags description:
 * - active connection present
 : - handmade profile present
 . - automatically generated profile present"
    CHOICE=$(dialog --menu "$MSG" 24 50 12 "${ENTRIES[@]}" --stdout)
    RETURN=$?
    if (( RETURN == 0 )); then
        if [[ "$CHARMAP" != "UTF-8" ]]; then
            CHOICE=$(printf_decode "$CHOICE")
        fi
        connect_to_ssid "$CHOICE"
        RETURN=$?
    fi
else
    echo "failed"
    RETURN=3
fi

case $RETURN in
    0|2)  # Connected | Connecting failed
        ;;
    1)  # Canceled
        clear
        ;;
    3)  # No networks found
        report_error "No networks found"
        ;;
    4)  # Invalid passphrase length (WEP keys have tighter restrictions)
        clear
        report_error "Passphrase must be 8..63 characters"
        ;;
    255)  # ESC or error
        clear
        report_error "Aborted"
        ;;
    *)  # Should not happen
        report_error "Unexpected return code from dialog: $RETURN"
        RETURN=7
        ;;
esac
exit $RETURN


# vim: ft=sh ts=4 et sw=4:

linux-lts kernel config gentoo

https://git.archlinux.org/svntogit/packages.git/tree/trunk/config?h=packages/linux-lts

make localmodconfig
 
for  newer than 4.14.16-1
make olddefconfig 
make menuconfig                        #verify settings
make && make modules_install
make install  

np script

क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व ह श ष स ऱ  अ आ इ ई उ ऊ  ऋ ॠ ऌ ॡ ए ऐ ओ औ ऍ ऑ ऎ ऒ ० १ २ ३ ४ ५ ६ ७ ८ ९

xterm config xresources

! XTERM -----------------------------------------------------------------------
XTerm*locale: true
XTerm*termName:        xterm-256color
XTerm*internalBorder:        0
XTerm*loginShell:         true
XTerm*scrollBar:         false
!XTerm*rightScrollBar: true
XTerm*scrollKey: true
XTerm*scrollTtyOutput: false
XTerm*cursorBlink:       true
!XTerm*geometry:         80x26
XTerm*saveLines:         65535
XTerm*dynamicColors:        on
XTerm*highlightSelection: true
! Appearance
XTerm*utf8:            2
XTerm*eightBitInput:   true
XTerm*metaSendsEscape: true
XTerm*font:        -xos4-terminus-medium-r-*-*-18-*-*-*-*-*-iso10646-*
XTerm*boldFont:    -xos4-terminus-bold-r-*-*-18-*-*-*-*-*-iso10646-*
XTerm*cursorColor: #DCDCCC
! Zenburn
XTerm*background:  #3f3f3f
XTerm*foreground:  #dcdccc
XTerm*color0:      #1E2320
XTerm*color1:      #705050
XTerm*color2:      #60b48a
XTerm*color3:      #dfaf8f
XTerm*color4:      #506070
XTerm*color5:      #dc8cc3
XTerm*color6:      #8cd0d3
XTerm*color7:      #dcdccc
XTerm*color8:      #709080
XTerm*color9:      #dca3a3
XTerm*color10:     #c3bf9f
XTerm*color11:     #f0dfaf
XTerm*color12:     #94bff3
XTerm*color13:     #ec93d3
XTerm*color14:     #93e0e3
XTerm*color15:     #ffffff

XTerm*VT100.*translations:#override \n\
Shift Ctrl C: select-end(CLIPBOARD, CUT_BUFFER0) \n\
Shift Ctrl V: insert-selection(CLIPBOARD, CUT_BUFFER0)

pcmanfm not authorized

 
  /etc/polkit-1/rules.d/00-mount-internal.rules 
-------------------------------------------------------------------------------
polkit.addRule(function(action, subject) {
   if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" &&
      subject.local && subject.active && subject.isInGroup("storage")))
      {
         return polkit.Result.YES;
      }
}); 
 
-------------------------------------------------------------------------------
 usermod -aG storage username


fixed idm fake serial warning

https://github.com/J2TeaM/idm-trial-reset/releases/tag/v1.0.0
Use IDM forever without cracking
Credits

bumblebee service status errors fix

append to etc/bumblebee/xorg.conf.nvidia 
 
Section "Screen"
  Identifier "Default Screen"
  Device "DiscreteNvidia"
EndSection

acpid brightness handler

sudo pacman -S acpid
sudo systemctl enable acpid
check ls /sys/class/backlight/ to confirm  bl_dev=/sys/class/backlight/intel_backlight/


sudo leafpad  /etc/acpi/handlers/bl
-------------------------------------------------------------------------------------------------------------
#!/bin/sh
bl_dev=/sys/class/backlight/intel_backlight/
step=1

case $1 in
  -) echo $(($(< $bl_dev/brightness) - $step)) >$bl_dev/brightness;;
  +) echo $(($(< $bl_dev/brightness) + $step)) >$bl_dev/brightness;;
esac

chmod +x /etc/acpi/handlers/bl

 -------------------------------------------------------------------------------------------------------------
  sudo leafpad  /etc/acpi/events/bl_d

event=video/brightnessdown
action=/etc/acpi/handlers/bl -
 -------------------------------------------------------------------------------------------------------------
  sudo leafpad  /etc/acpi/events/bl_u
event=video/brightnessup
action=/etc/acpi/handlers/bl +
 -------------------------------------------------------------------------------------------------------------
 

ELF

file filename.out name.bin
file command gives info about file

readelf
it gives structure of elf file

example
readelf  -a file.bin

https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/

dot -o //graphviz

digraph G {

        rankdir=LR
    splines=line
       
        node [fixedsize=true, label=""];

        subgraph cluster_0 {
        color=white;
        node [style=solid,color=blue4, shape=circle];
        x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15;
        label = "layer 1 (Input layer)";
    }

    subgraph cluster_1 {
        color=white;
        node [style=solid,color=red2, shape=circle];
        a12 a22 a32 a42 a52 a62 a72 a82 ;
        label = "layer 2 (hidden layer)";
    }
   
    subgraph cluster_2 {
        color=white;
        node [style=solid,color=red2, shape=circle];
        b13 b23 b33 b43 b53 b63 b73 b83 ;
        label = "layer 3 (hidden layer)";
    }
    subgraph cluster_3 {
        color=white;
        node [style=solid,color=red2, shape=circle];
        c14 c24 c34 c44 c54 c64 c74 c84 ;
        label = "layer 4 (hidden layer)";
    }
    subgraph cluster_4 {
        color=white;
        node [style=solid,color=red2, shape=circle];
        d15 d25 d35 d45 d55 d65 d75 d85 ;
        label = "layer 5 (hidden layer)";
    }
    subgraph cluster_5 {
        color=white;
        node [style=solid,color=red2, shape=circle];
        e16 e26 e36 e46 e56 e66 e76 e86 ;
        label = "layer 6 (hidden layer)";
    }

    subgraph cluster_6 {
        color=white;
        node [style=solid,color=seagreen2, shape=circle];
        O;
        label="layer 3 (output layer)";
    }

        x1 -> a12;
        x1 -> a22;
        x1 -> a32;
    x1 -> a42;
    x1 -> a52;
    x1 -> a62;
    x1 -> a72;
    x1 -> a82;
        x2 -> a12;
        x2 -> a22;
        x2 -> a32;
    x2 -> a42;
    x2 -> a52;
    x2 -> a62;
    x2 -> a72;
    x2 -> a82;
    x3 -> a12;
        x3 -> a22;
        x3 -> a32;
    x3 -> a42;
    x3 -> a52;
    x3 -> a62;
    x3 -> a72;
    x3 -> a82;
    x4 -> a12;
        x4 -> a22;
        x4 -> a32;
    x4 -> a42;
    x4 -> a52;
    x4 -> a62;
    x4 -> a72;
    x4 -> a82;
    x5 -> a12;
        x5 -> a22;
        x5 -> a32;
    x5 -> a42;
    x5 -> a52;
    x5 -> a62;
    x5 -> a72;
    x5 -> a82;
    x6 -> a12;
        x6 -> a22;
        x6 -> a32;
    x6 -> a42;
    x6 -> a52;
    x6 -> a62;
    x6 -> a72;
    x6 -> a82;
    x7 -> a12;
        x7 -> a22;
        x7 -> a32;
    x7 -> a42;
    x7 -> a52;
    x7 -> a62;
    x7 -> a72;
    x7 -> a82;
    x8 -> a12;
        x8 -> a22;
        x8 -> a32;
    x8 -> a42;
    x8 -> a52;
    x8 -> a62;
    x8 -> a72;
    x8 -> a82;
    x9 -> a12;
        x9 -> a22;
        x9 -> a32;
    x9 -> a42;
    x9 -> a52;
    x9 -> a62;
    x9 -> a72;
    x9 -> a82;
    x10 -> a12;
        x10 -> a22;
        x10-> a32;
    x10 -> a42;
    x10 -> a52;
    x10 -> a62;
    x10 -> a72;
    x10 -> a82;
    x11 -> a12;
        x11 -> a22;
        x11 -> a32;
    x11 -> a42;
    x11 -> a52;
    x11 -> a62;
    x11 -> a72;
    x11 -> a82;
    x12 -> a12;
        x12 -> a22;
        x12 -> a32;
    x12 -> a42;
    x12 -> a52;
    x12 -> a62;
    x12 -> a72;
    x12 -> a82;
    x13 -> a12;
        x13 -> a22;
        x13 -> a32;
    x13 -> a42;
    x13 -> a52;
    x13 -> a62;
    x13 -> a72;
    x13 -> a82;
    x14 -> a12;
        x14 -> a22;
        x14 -> a32;
    x14 -> a42;
    x14 -> a52;
    x14 -> a62;
    x14 -> a72;
    x14 -> a82;
    x15 -> a12;
        x15 -> a22;
        x15 -> a32;
    x15 -> a42;
    x15 -> a52;
    x15 -> a62;
    x15 -> a72;
    x15 -> a82;
    a12 -> b13;
        a22 -> b23;
    a32 -> b33;
    a42 -> b43;
    a52 -> b53;
    a62 -> b63;
    a72 -> b73;
    a82 -> b83;
    a12 -> b23;
        a22 -> b33;
    a32 -> b43;
    a42 -> b53;
    a52 -> b63;
    a62 -> b73;
    a72 -> b83;
    a82 -> b13;
    a12 -> b33;
        a22 -> b43;
    a32 -> b53;
    a42 -> b63;
    a52 -> b73;
    a62 -> b83;
    a72 -> b13;
    a82 -> b23;
    a12 -> b43;
        a22 -> b53;
    a32 -> b63;
    a42 -> b73;
    a52 -> b83;
    a62 -> b13;
    a72 -> b23;
    a82 -> b33;
    a12 -> b53;
        a22 -> b63;
    a32 -> b73;
    a42 -> b83;
    a52 -> b13;
    a62 -> b23;
    a72 -> b33;
    a82 -> b43;
    a12 -> b63;
        a22 -> b73;
    a32 -> b83;
    a42 -> b13;
    a52 -> b23;
    a62 -> b33;
    a72 -> b43;
    a82 -> b53;
    a12 -> b73;
        a22 -> b83;
    a32 -> b13;
    a42 -> b23;
    a52 -> b33;
    a62 -> b43;
    a72 -> b53;
    a82 -> b63;
    b13 -> c14;
        b23 -> c24;
    b33 -> c34;
    b43 -> c44;
    b53 -> c54;
    b63 -> c64;
    b73 -> c74;
    b83 -> c84;
    b13 -> c24;
        b23 -> c34;
    b33 -> c44;
    b43 -> c54;
    b53 -> c64;
    b63 -> c74;
    b73 -> c84;
    b83 -> c14;
    b13 -> c34;
        b23 -> c44;
    b33 -> c54;
    b43 -> c64;
    b53 -> c74;
    b63 -> c84;
    b73 -> c14;
    b83 -> c24;
    b13 -> c44;
        b23 -> c54;
    b33 -> c64;
    b43 -> c74;
    b53 -> c84;
    b63 -> c14;
    b73 -> c24;
    b83 -> c34;
    b13 -> c54;
        b23 -> c64;
    b33 -> c74;
    b43 -> c84;
    b53 -> c14;
    b63 -> c24;
    b73 -> c34;
    b83 -> c44;
    b13 -> c64;
        b23 -> c74;
    b33 -> c84;
    b43 -> c14;
    b53 -> c24;
    b63 -> c34;
    b73 -> c44;
    b83 -> c54;
    b13 -> c74;
        b23 -> c84;
    b33 -> c14;
    b43 -> c24;
    b53 -> c34;
    b63 -> c44;
    b73 -> c54;
    b83 -> c64;
    c14 -> d15;
        c24 -> d25;
    c34 -> d35;
    c44 -> d45;
    c54 -> d55;
    c64 -> d65;
    c74 -> d75;
    c84 -> d85;
    c14 -> d25;
        c24 -> d35;
    c34 -> d45;
    c44 -> d55;
    c54 -> d65;
    c64 -> d75;
    c74 -> d85;
    c84 -> d15;
    c14 -> d35;
        c24 -> d45;
    c34 -> d55;
    c44 -> d65;
    c54 -> d75;
    c64 -> d85;
    c74 -> d15;
    c84 -> d25;
    c14 -> d45;
        c24 -> d55;
    c34 -> d65;
    c44 -> d75;
    c54 -> d85;
    c64 -> d15;
    c74 -> d25;
    c84 -> d35;
    c14 -> d55;
        c24 -> d65;
    c34 -> d75;
    c44 -> d85;
    c54 -> d15;
    c64 -> d25;
    c74 -> d35;
    c84 -> d45;
    c14 -> d65;
        c24 -> d75;
    c34 -> d85;
    c44 -> d15;
    c54 -> d25;
    c64 -> d35;
    c74 -> d45;
    c84 -> d55;
    c14 -> d75;
        c24 -> d85;
    c34 -> d15;
    c44 -> d25;
    c54 -> d35;
    c64 -> d45;
    c74 -> d55;
    c84 -> d65;
   
        d15 -> e16;
        d25 -> e26;
    d35 -> e36;
    d45 -> e46;
    d55 -> e56;
    d65 -> e66;
    d75 -> e76;
    d85 -> e86;
    d15 -> e26;
        d25 -> e36;
    d35 -> e46;
    d45 -> e56;
    d55 -> e66;
    d65 -> e76;
    d75 -> e86;
    d85 -> e16;
    d15 -> e36;
        d25 -> e46;
    d35 -> e56;
    d45 -> e66;
    d55 -> e76;
    d65 -> e86;
    d75 -> e16;
    d85 -> e26;
    d15 -> e46;
        d25 -> e56;
    d35 -> e66;
    d45 -> e76;
    d55 -> e86;
    d65 -> e16;
    d75 -> e26;
    d85 -> e36;
    d15 -> e56;
        d25 -> e66;
    d35 -> e76;
    d45 -> e86;
    d55 -> e16;
    d65 -> e26;
    d75 -> e36;
    d85 -> e46;
    d15 -> e66;
        d25 -> e76;
    d35 -> e86;
    d45 -> e16;
    d55 -> e26;
    d65 -> e36;
    d75 -> e46;
    d85 -> e56;
    d15 -> e76;
        d25 -> e86;
    d35 -> e16;
    d45 -> e26;
    d55 -> e36;
    d65 -> e46;
    d75 -> e56;
    d85 -> e66;
   
    e16 -> O;
        e26 -> O;
    e36 -> O;
    e46 -> O;
    e56 -> O;
    e66 -> O;
    e76 -> O;
    e86 -> O;
    e16 -> O;
        e26 -> O;
    e36 -> O;
    e46 -> O;
    e56 -> O;
    e66 -> O;
    e76 -> O;
    e86 -> O;
    e16 -> O;
        e26 -> O;
    e36 -> O;
    e46 -> O;
    e56 -> O;
    e66 -> O;
    e76 -> O;
    e86 -> O;
    e16 -> O;
        e26 -> O;
    e36 -> O;
    e46 -> O;
    e56 -> O;
    e66 -> O;
    e76 -> O;
    e86 -> O;
    e16 -> O;
        e26 -> O;
    e36 -> O;
    e46 -> O;
    e56 -> O;
    e66 -> O;
    e76 -> O;
    e86 -> O;
    e16 -> O;
        e26 -> O;
    e36 -> O;
    e46 -> O;
    e56 -> O;
    e66 -> O;
    e76 -> O;
    e86 -> O;
    e16 -> O;
        e26 -> O;
    e36 -> O;
    e46 -> O;
    e56 -> O;
    e66 -> O;
    e76 -> O;
    e86 -> O;
       

}

quicklook

https://www.microsoft.com/en-us/p/quicklook/9nv4bs3l1h4s?activetab=pivot%3Aoverviewtab

armitage archlinux

export MSF_DATABASE_CONFIG=/home/kai/.msf4/database.yml cat  /home/kai/.msf4/database.yml adapter: postgresql  database: databasename  u...